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

◆ DrawInterface_4_Ruler()

static void Terraria.Main.DrawInterface_4_Ruler ( )
inlinestaticprivate

Definition at line 43255 of file Main.cs.

43256 {
43257 if (!player[myPlayer].rulerLine || player[myPlayer].builderAccStatus[0] != 0)
43258 {
43259 return;
43260 }
43261 float num = player[myPlayer].velocity.Length();
43262 float num2 = 6f;
43263 float num3 = 2f;
43264 if (!(num <= num2))
43265 {
43266 return;
43267 }
43268 float num4 = 1f;
43269 if (num >= num3)
43270 {
43271 num4 = 1f - (num - num3) / num2;
43272 }
43273 int num5 = 1;
43274 if ((float)mouseX + screenPosition.X < player[myPlayer].Center.X)
43275 {
43276 num5 = -1;
43277 }
43278 int num6 = (int)(player[myPlayer].position.X + (float)(player[myPlayer].width / 2)) / 16;
43279 int num7 = (int)(player[myPlayer].position.Y + (float)player[myPlayer].height - 2f) / 16;
43280 if (player[myPlayer].gravDir == -1f)
43281 {
43282 num7--;
43283 }
43285 if (Math.Abs(num6 - (int)(MouseWorld.X / 16f)) > 0)
43286 {
43287 num6 += num5;
43288 }
43289 if (player[myPlayer].gravDir == -1f)
43290 {
43291 mouseWorld.Y += 16f;
43292 }
43293 mouseWorld /= 16f;
43294 new Vector2(num6, num7);
43295 int num8 = (int)mouseWorld.X - num6;
43296 int num9 = (int)mouseWorld.Y - num7;
43297 Math.Abs(num8);
43298 Math.Abs(num9);
43299 rulerLineDisplayValues.X = num8;
43300 rulerLineDisplayValues.Y = num9;
43301 if (num8 == 0 && num9 == 0)
43302 {
43303 return;
43304 }
43307 int num10 = num6;
43308 int num11 = num7;
43309 if (player[myPlayer].gravDir == -1f)
43310 {
43311 num11--;
43312 }
43313 float r = 0.24f;
43314 float g = 0.8f;
43315 float b = 0.9f;
43316 float a = 1f;
43317 float num12 = 0.8f;
43319 spriteBatch.Draw(value, ReverseGravitySupport(new Vector2(num10, num11) * 16f - screenPosition, 16f), value2, color, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f);
43320 if (num8 != 0)
43321 {
43322 int num13 = Math.Sign(num8);
43323 value2.Y = ((num13 == 1) ? 16 : 32);
43324 while (num8 != 0)
43325 {
43326 num8 -= num13;
43327 num10 += num13;
43328 if (num8 == 0)
43329 {
43330 value2.Y = 0;
43331 }
43332 color = new Microsoft.Xna.Framework.Color(r, g, b, a) * num12 * num4;
43333 spriteBatch.Draw(value, ReverseGravitySupport(new Vector2(num10, num11) * 16f - screenPosition, 16f), value2, color, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f);
43334 }
43335 }
43336 if (num9 == 0)
43337 {
43338 return;
43339 }
43340 int num14 = Math.Sign(num9);
43341 value2.Y = ((num14 == 1) ? 48 : 64);
43342 while (num9 != 0)
43343 {
43344 num9 -= num14;
43345 num11 += num14;
43346 if (num9 == 0)
43347 {
43348 value2.Y = 0;
43349 }
43350 color = new Microsoft.Xna.Framework.Color(r, g, b, a) * num12 * num4;
43351 spriteBatch.Draw(value, ReverseGravitySupport(new Vector2(num10, num11) * 16f - screenPosition, 16f), value2, color, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f);
43352 }
43353 }
static double Abs(double value)
static int Sign(decimal value)
Definition Math.cs:1202
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 Vector2 screenPosition
Definition Main.cs:1715
static Player[] player
Definition Main.cs:1803
static int mouseX
Definition Main.cs:604

References System.Math.Abs(), Terraria.GameContent.TextureAssets.Extra, Terraria.Main.MouseWorld, Terraria.Main.mouseX, Terraria.Main.myPlayer, Terraria.Main.player, Terraria.Main.ReverseGravitySupport(), Terraria.Main.screenPosition, System.Math.Sign(), Terraria.Main.spriteBatch, System.value, Microsoft.Xna.Framework.Graphics.Vector2, and Microsoft.Xna.Framework.Vector2.Zero.

Referenced by Terraria.Main.SetupDrawInterfaceLayers().