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

◆ QuickMinecart()

void Terraria.Player.QuickMinecart ( )
inlineprivate

Definition at line 5050 of file Player.cs.

5051 {
5052 int num = 0;
5053 int value = (int)(position.X / 16f) - tileRangeX - num + 1;
5054 int value2 = (int)((position.X + (float)width) / 16f) + tileRangeX + num - 1;
5055 int value3 = (int)(position.Y / 16f) - tileRangeY - num + 1;
5056 int value4 = (int)((position.Y + (float)height) / 16f) + tileRangeY + num - 2;
5057 int num2 = Utils.Clamp(value, 10, Main.maxTilesX - 10);
5058 value2 = Utils.Clamp(value2, 10, Main.maxTilesX - 10);
5059 value3 = Utils.Clamp(value3, 10, Main.maxTilesY - 10);
5060 List<Point> list = Collision.GetTilesIn(BottomRight: new Vector2(value2 + 1, Utils.Clamp(value4, 10, Main.maxTilesY - 10) + 1) * 16f, TopLeft: new Vector2(num2, value3) * 16f);
5061 if (list.Count <= 0)
5062 {
5063 return;
5064 }
5065 Point? point = null;
5066 _ = base.Hitbox;
5067 for (int i = 0; i < list.Count; i++)
5068 {
5069 Point point2 = list[i];
5070 Tile tileSafely = Framing.GetTileSafely(point2.X, point2.Y);
5071 if (tileSafely.active() && tileSafely.type == 314)
5072 {
5073 Vector2 vector = list[i].ToVector2() * 16f + new Vector2(8f);
5074 if (!point.HasValue || (Distance(vector) < Distance(point.Value.ToVector2() * 16f + new Vector2(8f)) && Collision.CanHitLine(base.Center, 0, 0, vector, 0, 0)))
5075 {
5076 point = list[i];
5077 }
5078 }
5079 }
5080 if (point.HasValue)
5081 {
5082 LaunchMinecartHook(point.Value.X, point.Value.Y);
5083 }
5084 }
Vector2 BottomRight
Definition Entity.cs:139
Vector2 TopLeft
Definition Entity.cs:91
float Distance(Vector2 Other)
Definition Entity.cs:187
Vector2 position
Definition Entity.cs:14
void LaunchMinecartHook(int myX, int myY)
Definition Player.cs:31273
static int tileRangeX
Definition Player.cs:2075
static int tileRangeY
Definition Player.cs:2077

References Terraria.Entity.BottomRight, Terraria.Collision.CanHitLine(), Terraria.Entity.Distance(), Terraria.Framing.GetTileSafely(), Terraria.Collision.GetTilesIn(), Terraria.Entity.height, Terraria.Player.LaunchMinecartHook(), System.list, Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.Entity.position, Terraria.Player.tileRangeX, Terraria.Player.tileRangeY, Terraria.Entity.TopLeft, System.value, Terraria.Entity.width, Microsoft.Xna.Framework.Point.X, Microsoft.Xna.Framework.Vector2.X, Microsoft.Xna.Framework.Point.Y, and Microsoft.Xna.Framework.Vector2.Y.

Referenced by Terraria.Player.QuickMount().