Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros

◆ DrawInterface_GolfBallIndicator()

static void Terraria.Main.DrawInterface_GolfBallIndicator ( )
inlinestaticprivate

Definition at line 40545 of file Main.cs.

40546 {
40547 if (!Item.IsAGolfingItem(LocalPlayer.HeldItem))
40548 {
40549 return;
40550 }
40551 Projectile lastHitBall = LocalGolfState.GetLastHitBall();
40553 {
40554 Vector2 vector = lastHitBall.Top - Camera.ScaledPosition;
40555 vector *= GameViewMatrix.Zoom;
40556 vector /= UIScale;
40557 float num = MathHelper.Clamp(((LocalPlayer.position - lastHitBall.position).Length() - 150f) / 50f, 0f, 1f);
40559 float num2 = 0f;
40560 if (vector2 != vector)
40561 {
40562 num2 = (vector2 - vector).ToRotation() + (float)Math.PI / 2f;
40563 }
40564 vector2 -= (num2 + (float)Math.PI / 2f).ToRotationVector2() * (((float)Math.Sin(GlobalTimeWrappedHourly * 4f) * 0.5f + 0.5f) * 5f + 14f);
40567 Vector2 origin = rectangle.Size() * new Vector2(0.5f, 1f);
40569 spriteBatch.Draw(TextureAssets.GolfBallArrowShadow.Value, vector2 + new Vector2(-4f, 4f) * 1.5f, rectangle, Microsoft.Xna.Framework.Color.White * num, num2, origin, 1.5f, SpriteEffects.None, 0f);
40570 float amount = (float)Math.Sin(GlobalTimeWrappedHourly * 4f) * 0.5f + 0.5f;
40571 for (float num3 = 0f; num3 < 1f; num3 += 0.25f)
40572 {
40573 spriteBatch.Draw(value, vector2 + ((float)Math.PI * 2f * num3 + num2).ToRotationVector2() * MathHelper.Lerp(2f, 2f, amount), value2, Microsoft.Xna.Framework.Color.Black * num * MathHelper.Lerp(1f, 1f, amount), num2, origin, 1.5f, SpriteEffects.None, 0f);
40574 }
40575 for (float num4 = 0f; num4 < 1f; num4 += 0.25f)
40576 {
40577 spriteBatch.Draw(value, vector2 + ((float)Math.PI * 2f * num4 + num2).ToRotationVector2() * MathHelper.Lerp(0f, 0f, amount), value2, Microsoft.Xna.Framework.Color.White * num * MathHelper.Lerp(0.8f, 0.8f, amount), num2, origin, 1.5f, SpriteEffects.None, 0f);
40578 }
40579 spriteBatch.Draw(value, vector2, rectangle, mouseColor * num, num2, origin, 1.5f, SpriteEffects.None, 0f);
40580 }
40581 }
static float Lerp(float value1, float value2, float amount)
Definition MathHelper.cs:53
static float Clamp(float value, float min, float max)
Definition MathHelper.cs:46
static double Sin(double a)
const double PI
Definition Math.cs:16
static bool IsGolfBallResting(Projectile golfBall)
static Asset< Texture2D > GolfBallArrowShadow
static Asset< Texture2D > GolfBallArrow
static GolfState LocalGolfState
Definition Main.cs:1876
static SpriteBatch spriteBatch
Definition Main.cs:974
static float UIScale
Definition Main.cs:2624
static SpriteViewMatrix GameViewMatrix
Definition Main.cs:227
static Microsoft.Xna.Framework.Color mouseColor
Definition Main.cs:2203
static Player LocalPlayer
Definition Main.cs:2829
static float GlobalTimeWrappedHourly
Definition Main.cs:405
static Vector2 Clamp(Vector2 value1, Vector2 min, Vector2 max)
Definition Vector2.cs:201

References Microsoft.Xna.Framework.MathHelper.Clamp(), Microsoft.Xna.Framework.Vector2.Clamp(), Terraria.Main.GameViewMatrix, Terraria.Main.GlobalTimeWrappedHourly, Terraria.GameContent.TextureAssets.GolfBallArrow, Terraria.GameContent.TextureAssets.GolfBallArrowShadow, Terraria.Item.IsAGolfingItem(), Terraria.GameContent.Golf.GolfHelper.IsGolfBallResting(), Microsoft.Xna.Framework.MathHelper.Lerp(), Terraria.Main.LocalGolfState, Terraria.Main.LocalPlayer, Terraria.Main.mouseColor, System.Math.PI, Terraria.Graphics.Camera.ScaledPosition, System.Math.Sin(), Terraria.Main.spriteBatch, Terraria.Main.UIScale, Terraria.Graphics.Camera.UnscaledSize, System.value, Microsoft.Xna.Framework.Graphics.Vector2, and Microsoft.Xna.Framework.Color.White.

Referenced by Terraria.Main.DrawInterface_9_WireSelection().