Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
GamepadMainMenuHandler.cs
Go to the documentation of this file.
1
using
System
;
2
using
System.Collections.Generic
;
3
using
Microsoft.Xna.Framework
;
4
using
Terraria.GameInput
;
5
6
namespace
Terraria.UI.Gamepad
;
7
8
public
class
GamepadMainMenuHandler
9
{
10
public
static
int
LastMainMenu
= -1;
11
12
public
static
List<Vector2>
MenuItemPositions
=
new
List<Vector2>
(20);
13
14
public
static
int
LastDrew
= -1;
15
16
public
static
bool
CanRun
=
false
;
17
18
public
static
bool
MoveCursorOnNextRun
=
false
;
19
20
public
static
void
Update
()
21
{
22
if
(!
CanRun
)
23
{
24
UILinkPage
uILinkPage
=
UILinkPointNavigator
.
Pages
[1000];
25
uILinkPage.CurrentPoint =
uILinkPage
.DefaultPoint;
26
Vector2
vector
=
new
Vector2
((
float
)
Math
.
Cos
(
Main
.
GlobalTimeWrappedHourly
* ((
float
)
Math
.
PI
* 2f)), (
float
)
Math
.
Sin
(
Main
.
GlobalTimeWrappedHourly
* ((
float
)
Math
.
PI
* 2f) * 2f)) *
new
Vector2
(30f, 15f) + Vector2.UnitY * 20f;
27
UILinkPointNavigator
.
SetPosition
(2000,
new
Vector2
(
Main
.
screenWidth
,
Main
.
screenHeight
) / 2f +
vector
);
28
}
29
else
30
{
31
if
(!
Main
.
gameMenu
||
Main
.
MenuUI
.IsVisible ||
LastDrew
!=
Main
.
menuMode
)
32
{
33
return
;
34
}
35
int
lastMainMenu
=
LastMainMenu
;
36
LastMainMenu
=
Main
.
menuMode
;
37
switch
(
Main
.
menuMode
)
38
{
39
case
17:
40
case
18:
41
case
19:
42
case
21:
43
case
22:
44
case
23:
45
case
24:
46
case
26:
47
if
(
MenuItemPositions
.Count >= 4)
48
{
49
Vector2
item
=
MenuItemPositions
[3];
50
MenuItemPositions
.RemoveAt(3);
51
if
(
Main
.
menuMode
== 17)
52
{
53
MenuItemPositions
.Insert(0,
item
);
54
}
55
}
56
break
;
57
case
28:
58
if
(
MenuItemPositions
.Count >= 3)
59
{
60
MenuItemPositions
.RemoveAt(1);
61
}
62
break
;
63
}
64
UILinkPage
uILinkPage2
=
UILinkPointNavigator
.
Pages
[1000];
65
if
(
lastMainMenu
!=
Main
.
menuMode
)
66
{
67
uILinkPage2.CurrentPoint =
uILinkPage2
.DefaultPoint;
68
}
69
for
(
int
i = 0; i <
MenuItemPositions
.Count; i++)
70
{
71
Vector2
position =
MenuItemPositions
[i] *
Main
.
UIScale
;
72
if
(i == 0 &&
lastMainMenu
!=
LastMainMenu
&&
PlayerInput
.
UsingGamepad
&&
Main
.
InvisibleCursorForGamepad
)
73
{
74
Main.mouseX = (PlayerInput.MouseX = (int)position.
X
);
75
Main.mouseY = (PlayerInput.MouseY = (int)position.
Y
);
76
Main.menuFocus = -1;
77
}
78
UILinkPoint
uILinkPoint
=
uILinkPage2
.LinkMap[2000 + i];
79
uILinkPoint.Position = position;
80
if
(i == 0)
81
{
82
uILinkPoint.Up = -1;
83
}
84
else
85
{
86
uILinkPoint.Up = 2000 + i - 1;
87
}
88
uILinkPoint.Left = -3;
89
uILinkPoint.Right = -4;
90
if
(i ==
MenuItemPositions
.Count - 1)
91
{
92
uILinkPoint.Down = -2;
93
}
94
else
95
{
96
uILinkPoint.Down = 2000 + i + 1;
97
}
98
if
(
MoveCursorOnNextRun
)
99
{
100
MoveCursorOnNextRun
=
false
;
101
UILinkPointNavigator
.
ChangePoint
(
uILinkPoint
.ID);
102
}
103
}
104
MenuItemPositions
.Clear();
105
}
106
}
107
}
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
System.Math.Cos
static double Cos(double d)
System.Math.Sin
static double Sin(double a)
System.Math.PI
const double PI
Definition
Math.cs:16
System.Math
Definition
Math.cs:13
Terraria.GameInput.PlayerInput.UsingGamepad
static bool UsingGamepad
Definition
PlayerInput.cs:331
Terraria.GameInput.PlayerInput
Definition
PlayerInput.cs:18
Terraria.Main.InvisibleCursorForGamepad
static bool InvisibleCursorForGamepad
Definition
Main.cs:267
Terraria.Main.MenuUI
static UserInterface MenuUI
Definition
Main.cs:381
Terraria.Main.UIScale
static float UIScale
Definition
Main.cs:2624
Terraria.Main.screenHeight
static int screenHeight
Definition
Main.cs:1721
Terraria.Main.screenWidth
static int screenWidth
Definition
Main.cs:1719
Terraria.Main.menuMode
static int menuMode
Definition
Main.cs:2379
Terraria.Main.gameMenu
static bool gameMenu
Definition
Main.cs:1926
Terraria.Main.GlobalTimeWrappedHourly
static float GlobalTimeWrappedHourly
Definition
Main.cs:405
Terraria.Main
Definition
Main.cs:79
Terraria.UI.Gamepad.GamepadMainMenuHandler.CanRun
static bool CanRun
Definition
GamepadMainMenuHandler.cs:16
Terraria.UI.Gamepad.GamepadMainMenuHandler.MenuItemPositions
static List< Vector2 > MenuItemPositions
Definition
GamepadMainMenuHandler.cs:12
Terraria.UI.Gamepad.GamepadMainMenuHandler.MoveCursorOnNextRun
static bool MoveCursorOnNextRun
Definition
GamepadMainMenuHandler.cs:18
Terraria.UI.Gamepad.GamepadMainMenuHandler.Update
static void Update()
Definition
GamepadMainMenuHandler.cs:20
Terraria.UI.Gamepad.GamepadMainMenuHandler.LastDrew
static int LastDrew
Definition
GamepadMainMenuHandler.cs:14
Terraria.UI.Gamepad.GamepadMainMenuHandler.LastMainMenu
static int LastMainMenu
Definition
GamepadMainMenuHandler.cs:10
Terraria.UI.Gamepad.GamepadMainMenuHandler
Definition
GamepadMainMenuHandler.cs:9
Terraria.UI.Gamepad.UILinkPage
Definition
UILinkPage.cs:7
Terraria.UI.Gamepad.UILinkPointNavigator.ChangePoint
static void ChangePoint(int PointID)
Definition
UILinkPointNavigator.cs:487
Terraria.UI.Gamepad.UILinkPointNavigator.SetPosition
static void SetPosition(int ID, Vector2 Position)
Definition
UILinkPointNavigator.cs:456
Terraria.UI.Gamepad.UILinkPointNavigator.Pages
static Dictionary< int, UILinkPage > Pages
Definition
UILinkPointNavigator.cs:71
Terraria.UI.Gamepad.UILinkPointNavigator
Definition
UILinkPointNavigator.cs:13
Terraria.UI.Gamepad.UILinkPoint
Definition
UILinkPoint.cs:7
Microsoft.Xna.Framework
Definition
AlphaTestEffect.cs:1
System.Collections.Generic
Definition
IHashKeyCollection.cs:1
System.ExceptionArgument.item
@ item
System
Definition
BlockingCollection.cs:8
Terraria.GameInput
Definition
CursorMode.cs:1
Terraria.UI.Gamepad
Definition
GamepadMainMenuHandler.cs:6
Microsoft.Xna.Framework.Vector2.X
float X
Definition
Vector2.cs:14
Microsoft.Xna.Framework.Vector2.Y
float Y
Definition
Vector2.cs:17
Microsoft.Xna.Framework.Vector2
Definition
Vector2.cs:12
source
Terraria.UI.Gamepad
GamepadMainMenuHandler.cs
Generated by
1.10.0