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

◆ DrawTeleportationPylons()

void Terraria.GameContent.Drawing.TileDrawing.DrawTeleportationPylons ( )
inlineprivate

Definition at line 7510 of file TileDrawing.cs.

7511 {
7512 int num = 10;
7513 int num2 = _specialsCount[num];
7514 for (int i = 0; i < num2; i++)
7515 {
7516 Point p = _specialPositions[num][i];
7517 Tile tile = Main.tile[p.X, p.Y];
7518 if (tile == null || !tile.active())
7519 {
7520 continue;
7521 }
7522 Texture2D value = TextureAssets.Extra[181].Value;
7523 int num3 = tile.frameX / 54;
7524 int num4 = 3;
7525 int horizontalFrames = num4 + 9;
7526 int verticalFrames = 8;
7527 int frameY = (Main.tileFrameCounter[597] + p.X + p.Y) % 64 / 8;
7530 value.Frame(horizontalFrames, verticalFrames, 0, frameY);
7531 Vector2 origin = rectangle.Size() / 2f;
7532 Vector2 vector = p.ToWorldCoordinates(24f, 64f);
7533 float num5 = (float)Math.Sin(Main.GlobalTimeWrappedHourly * ((float)Math.PI * 2f) / 5f);
7534 Vector2 vector2 = vector + new Vector2(0f, -40f) + new Vector2(0f, num5 * 4f);
7535 bool flag = _rand.Next(4) == 0;
7536 if (_isActiveAndNotPaused && flag && _rand.Next(10) == 0)
7537 {
7538 Rectangle dustBox = Utils.CenteredRectangle(vector2, rectangle.Size());
7539 TeleportPylonsSystem.SpawnInWorldDust(num3, dustBox);
7540 }
7541 Color color = Lighting.GetColor(p.X, p.Y);
7542 color = Color.Lerp(color, Color.White, 0.8f);
7543 Main.spriteBatch.Draw(value, vector2 - Main.screenPosition, rectangle, color * 0.7f, 0f, origin, 1f, SpriteEffects.None, 0f);
7544 float num6 = (float)Math.Sin(Main.GlobalTimeWrappedHourly * ((float)Math.PI * 2f) / 1f) * 0.2f + 0.8f;
7545 Color color2 = new Color(255, 255, 255, 0) * 0.1f * num6;
7546 for (float num7 = 0f; num7 < 1f; num7 += 1f / 6f)
7547 {
7548 Main.spriteBatch.Draw(value, vector2 - Main.screenPosition + ((float)Math.PI * 2f * num7).ToRotationVector2() * (6f + num5 * 2f), rectangle, color2, 0f, origin, 1f, SpriteEffects.None, 0f);
7549 }
7550 int num8 = 0;
7551 if (Main.InSmartCursorHighlightArea(p.X, p.Y, out var actuallySelected))
7552 {
7553 num8 = 1;
7554 if (actuallySelected)
7555 {
7556 num8 = 2;
7557 }
7558 }
7559 if (num8 != 0)
7560 {
7561 int num9 = (color.R + color.G + color.B) / 3;
7562 if (num9 > 10)
7563 {
7564 Color selectionGlowColor = Colors.GetSelectionGlowColor(num8 == 2, num9);
7565 Main.spriteBatch.Draw(value, vector2 - Main.screenPosition, value2, selectionGlowColor, 0f, origin, 1f, SpriteEffects.None, 0f);
7566 }
7567 }
7568 }
7569 }
static double Sin(double a)
const double PI
Definition Math.cs:16
static Color GetSelectionGlowColor(bool isTileSelected, int averageTileLighting)
Definition Colors.cs:127
static Color Lerp(Color value1, Color value2, float amount)
Definition Color.cs:491

References Terraria.GameContent.Drawing.TileDrawing._isActiveAndNotPaused, Terraria.GameContent.Drawing.TileDrawing._rand, Terraria.GameContent.Drawing.TileDrawing._specialPositions, Terraria.GameContent.Drawing.TileDrawing._specialsCount, Terraria.Tile.active(), Microsoft.Xna.Framework.Color.B, Terraria.Utils.CenteredRectangle(), Microsoft.Xna.Framework.Graphics.Color, Terraria.GameContent.TextureAssets.Extra, Terraria.Lighting.GetColor(), Terraria.ID.Colors.GetSelectionGlowColor(), Terraria.Main.GlobalTimeWrappedHourly, Terraria.Main.InSmartCursorHighlightArea(), Microsoft.Xna.Framework.Color.Lerp(), Terraria.Utilities.UnifiedRandom.Next(), System.Math.PI, Terraria.Main.screenPosition, System.Math.Sin(), Terraria.GameContent.TeleportPylonsSystem.SpawnInWorldDust(), Terraria.Main.spriteBatch, Terraria.Main.tile, Terraria.Main.tileFrameCounter, System.value, Microsoft.Xna.Framework.Graphics.Vector2, Microsoft.Xna.Framework.Color.White, Microsoft.Xna.Framework.Point.X, and Microsoft.Xna.Framework.Point.Y.

Referenced by Terraria.GameContent.Drawing.TileDrawing.PostDrawTiles().