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

◆ DrawCursor()

static void Terraria.Main.DrawCursor ( Vector2 bonus,
bool smart = false )
inlinestatic

Definition at line 45012 of file Main.cs.

45013 {
45015 {
45016 return;
45017 }
45018 if (player[myPlayer].dead || player[myPlayer].mouseInterface)
45019 {
45022 }
45024 if (!gameMenu && LocalPlayer.hasRainbowCursor)
45025 {
45026 color = hslToRgb(GlobalTimeWrappedHourly * 0.25f % 1f, 1f, 0.5f);
45027 }
45028 bool flag = UILinkPointNavigator.Available && !PlayerInput.InBuildingMode;
45030 {
45032 {
45033 return;
45034 }
45035 Vector2 t = new Vector2(mouseX, mouseY);
45037 bool flag2 = SmartCursorIsUsed;
45038 if (flag2)
45039 {
45040 PlayerInput.smartSelectPointer.UpdateCenter(ScreenSize.ToVector2() / 2f);
45041 t2 = PlayerInput.smartSelectPointer.GetPointerPosition();
45042 if (Vector2.Distance(t2, t) < 1f)
45043 {
45044 flag2 = false;
45045 }
45046 else
45047 {
45048 Utils.Swap(ref t, ref t2);
45049 }
45050 }
45051 float num = 1f;
45052 if (flag2)
45053 {
45054 num = 0.3f;
45055 color = Microsoft.Xna.Framework.Color.White * GamepadCursorAlpha;
45056 int num2 = 17;
45057 int frameX = 0;
45058 spriteBatch.Draw(TextureAssets.Cursors[num2].Value, t2 + bonus, TextureAssets.Cursors[num2].Frame(1, 1, frameX), color, (float)Math.PI / 2f * GlobalTimeWrappedHourly, TextureAssets.Cursors[num2].Frame(1, 1, frameX).Size() / 2f, cursorScale, SpriteEffects.None, 0f);
45059 }
45060 if (smart && !flag)
45061 {
45062 color = Microsoft.Xna.Framework.Color.White * GamepadCursorAlpha * num;
45063 int num3 = 13;
45064 int frameX2 = 0;
45065 spriteBatch.Draw(TextureAssets.Cursors[num3].Value, t + bonus, TextureAssets.Cursors[num3].Frame(2, 1, frameX2), color, 0f, TextureAssets.Cursors[num3].Frame(2, 1, frameX2).Size() / 2f, cursorScale, SpriteEffects.None, 0f);
45066 }
45067 else
45068 {
45070 int num4 = 15;
45071 spriteBatch.Draw(TextureAssets.Cursors[num4].Value, new Vector2(mouseX, mouseY) + bonus, null, color, 0f, TextureAssets.Cursors[num4].Value.Size() / 2f, cursorScale, SpriteEffects.None, 0f);
45072 }
45073 }
45074 else
45075 {
45076 int num5 = smart.ToInt();
45077 spriteBatch.Draw(TextureAssets.Cursors[num5].Value, new Vector2(mouseX, mouseY) + bonus + Vector2.One, null, new Microsoft.Xna.Framework.Color((int)((float)(int)color.R * 0.2f), (int)((float)(int)color.G * 0.2f), (int)((float)(int)color.B * 0.2f), (int)((float)(int)color.A * 0.5f)), 0f, default(Vector2), cursorScale * 1.1f, SpriteEffects.None, 0f);
45078 spriteBatch.Draw(TextureAssets.Cursors[num5].Value, new Vector2(mouseX, mouseY) + bonus, null, color, 0f, default(Vector2), cursorScale, SpriteEffects.None, 0f);
45079 }
45080 }
const double PI
Definition Math.cs:16
static Asset< Texture2D >[] Cursors
static SmartSelectGamepadPointer smartSelectPointer
static int TileInteractionLX
Definition Main.cs:2173
static int TileInteractionLY
Definition Main.cs:2175
static Microsoft.Xna.Framework.Color cursorColor
Definition Main.cs:2205
static SpriteBatch spriteBatch
Definition Main.cs:974
static int myPlayer
Definition Main.cs:1801
static int TileInteractionHY
Definition Main.cs:2179
static Microsoft.Xna.Framework.Point ScreenSize
Definition Main.cs:2925
static bool alreadyGrabbingSunOrMoon
Definition Main.cs:1294
static float cursorScale
Definition Main.cs:2211
static float GamepadCursorAlpha
Definition Main.cs:2527
static bool SmartCursorIsUsed
Definition Main.cs:2855
static void ClearSmartInteract()
Definition Main.cs:45082
static Microsoft.Xna.Framework.Color hslToRgb(Vector3 hslVector)
Definition Main.cs:44913
static int TileInteractionHX
Definition Main.cs:2177
static int mouseY
Definition Main.cs:606
static bool gameMenu
Definition Main.cs:1926
static Player LocalPlayer
Definition Main.cs:2829
static Player[] player
Definition Main.cs:1803
static int mouseX
Definition Main.cs:604
static float GlobalTimeWrappedHourly
Definition Main.cs:405
static float Distance(Vector2 value1, Vector2 value2)
Definition Vector2.cs:91

References Microsoft.Xna.Framework.Color.A, Terraria.Main.alreadyGrabbingSunOrMoon, Microsoft.Xna.Framework.Color.B, Terraria.Main.ClearSmartInteract(), Terraria.Main.cursorColor, Terraria.GameContent.TextureAssets.Cursors, Terraria.Main.cursorScale, Microsoft.Xna.Framework.Vector2.Distance(), Microsoft.Xna.Framework.Color.G, Terraria.Main.gameMenu, Terraria.Main.GamepadCursorAlpha, Terraria.Main.GlobalTimeWrappedHourly, Terraria.Main.hslToRgb(), Terraria.GameInput.PlayerInput.InBuildingMode, Terraria.GameInput.PlayerInput.InvisibleGamepadInMenus, Terraria.Main.LocalPlayer, Terraria.Main.mouseX, Terraria.Main.mouseY, Terraria.Main.myPlayer, Microsoft.Xna.Framework.Vector2.One, System.Math.PI, Terraria.Main.player, Microsoft.Xna.Framework.Color.R, Terraria.Main.ScreenSize, Terraria.GameInput.PlayerInput.SettingsForUI.ShowGamepadCursor, Terraria.Main.SmartCursorIsUsed, Terraria.GameInput.PlayerInput.smartSelectPointer, Terraria.Main.spriteBatch, Terraria.Main.TileInteractionHX, Terraria.Main.TileInteractionHY, Terraria.Main.TileInteractionLX, Terraria.Main.TileInteractionLY, Microsoft.Xna.Framework.Graphics.Vector2, Microsoft.Xna.Framework.Color.White, and Microsoft.Xna.Framework.Vector2.Zero.

Referenced by Terraria.Main.DoDraw(), Terraria.UI.IngameFancyUI.Draw(), Terraria.Main.DrawInterface_36_Cursor(), Terraria.Main.DrawMap(), and Terraria.Main.DrawMenu().