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

◆ DrawInterface_3_LaserRuler()

static void Terraria.Main.DrawInterface_3_LaserRuler ( )
inlinestaticprivate

Definition at line 43355 of file Main.cs.

43356 {
43357 if (!player[myPlayer].rulerGrid || player[myPlayer].builderAccStatus[1] != 0)
43358 {
43359 return;
43360 }
43361 float num = player[myPlayer].velocity.Length();
43362 num = Vector2.Distance(player[myPlayer].position, player[myPlayer].shadowPos[2]);
43363 float num2 = 6f;
43364 Texture2D value = TextureAssets.Extra[68].Value;
43365 float num3 = MathHelper.Lerp(0.2f, 0.7f, MathHelper.Clamp(1f - num / num2, 0f, 1f));
43367 vec += new Vector2(-50f);
43368 vec = vec.ToTileCoordinates().ToVector2() * 16f;
43369 int num4 = (screenWidth + 100) / 16;
43370 int num5 = (screenHeight + 100) / 16;
43371 Microsoft.Xna.Framework.Point point = MouseWorld.ToTileCoordinates();
43372 point.X -= (int)vec.X / 16;
43373 point.Y -= (int)vec.Y / 16;
43374 Microsoft.Xna.Framework.Color color = new Microsoft.Xna.Framework.Color(0.24f, 0.8f, 0.9f, 0.5f) * 0.4f * num3;
43375 Microsoft.Xna.Framework.Color color2 = new Microsoft.Xna.Framework.Color(1f, 0.8f, 0.9f, 0.5f) * 0.5f * num3;
43377 vec -= Vector2.One;
43378 for (int i = 0; i < num4; i++)
43379 {
43380 for (int j = 0; j < num5; j++)
43381 {
43384 if (i != point.X && j != point.Y)
43385 {
43386 if (i != point.X + 1)
43387 {
43388 value2.X = 0;
43389 value2.Width = 16;
43390 }
43391 else
43392 {
43393 value2.X = 2;
43394 value2.Width = 14;
43395 zero.X = 2f;
43396 }
43397 if (j != point.Y + 1)
43398 {
43399 value2.Y = 18;
43400 value2.Height = 16;
43401 }
43402 else
43403 {
43404 value2.Y = 2;
43405 value2.Height = 14;
43406 zero.Y = 2f;
43407 }
43408 spriteBatch.Draw(value, ReverseGravitySupport(new Vector2(i, j) * 16f - screenPosition + vec + zero, 16f), value2, color3, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f);
43409 }
43410 }
43411 }
43412 value2 = new Microsoft.Xna.Framework.Rectangle(0, 0, 16, 18);
43413 for (int k = 0; k < num4; k++)
43414 {
43415 if (k == point.X)
43416 {
43417 spriteBatch.Draw(value, ReverseGravitySupport(new Vector2(k, point.Y) * 16f - screenPosition + vec, 16f), new Microsoft.Xna.Framework.Rectangle(0, 0, 16, 16), color2, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f);
43418 }
43419 else
43420 {
43421 spriteBatch.Draw(value, ReverseGravitySupport(new Vector2(k, point.Y) * 16f - screenPosition + vec, 16f), value2, color2, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f);
43422 }
43423 }
43424 value2 = new Microsoft.Xna.Framework.Rectangle(0, 0, 18, 16);
43425 for (int l = 0; l < num5; l++)
43426 {
43427 if (l != point.Y)
43428 {
43429 spriteBatch.Draw(value, ReverseGravitySupport(new Vector2(point.X, l) * 16f - screenPosition + vec, 16f), value2, color2, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f);
43430 }
43431 }
43432 }
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 Asset< Texture2D >[] Extra
static SpriteBatch spriteBatch
Definition Main.cs:974
static int myPlayer
Definition Main.cs:1801
static Vector2 ReverseGravitySupport(Vector2 pos, float height=0f)
Definition Main.cs:3005
static Vector2 MouseWorld
Definition Main.cs:2776
static int screenHeight
Definition Main.cs:1721
static Vector2 screenPosition
Definition Main.cs:1715
static int screenWidth
Definition Main.cs:1719
static Player[] player
Definition Main.cs:1803
static float Distance(Vector2 value1, Vector2 value2)
Definition Vector2.cs:91

References Microsoft.Xna.Framework.MathHelper.Clamp(), Microsoft.Xna.Framework.Vector2.Distance(), Terraria.GameContent.TextureAssets.Extra, System.Text.RegularExpressions.i, Microsoft.Xna.Framework.MathHelper.Lerp(), Terraria.Main.MouseWorld, Terraria.Main.myPlayer, Microsoft.Xna.Framework.Vector2.One, Terraria.Main.player, Terraria.Main.ReverseGravitySupport(), Terraria.Main.screenHeight, Terraria.Main.screenPosition, Terraria.Main.screenWidth, Terraria.Main.spriteBatch, System.value, Microsoft.Xna.Framework.Graphics.Vector2, Microsoft.Xna.Framework.Point.X, Microsoft.Xna.Framework.Point.Y, and Microsoft.Xna.Framework.Vector2.Zero.

Referenced by Terraria.Main.SetupDrawInterfaceLayers().