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

◆ GetOnTrack()

static bool Terraria.Minecart.GetOnTrack ( int tileX,
int tileY,
ref Vector2 Position,
int Width,
int Height )
inlinestatic

Definition at line 1191 of file Minecart.cs.

1192 {
1193 Tile tile = Main.tile[tileX, tileY];
1194 if (tile.type != 314)
1195 {
1196 return false;
1197 }
1198 Vector2 vector = new Vector2((float)(Width / 2) - 25f, Height / 2);
1199 Vector2 vector2 = Position + vector + _trackMagnetOffset;
1200 int num = (int)vector2.X % 16 / 2;
1201 int num2 = -1;
1202 int num3 = 0;
1203 for (int i = num; i < 8; i++)
1204 {
1205 num3 = _tileHeight[tile.frameX][i];
1206 if (num3 >= 0)
1207 {
1208 num2 = i;
1209 break;
1210 }
1211 }
1212 if (num2 == -1)
1213 {
1214 for (int num4 = num - 1; num4 >= 0; num4--)
1215 {
1216 num3 = _tileHeight[tile.frameX][num4];
1217 if (num3 >= 0)
1218 {
1219 num2 = num4;
1220 break;
1221 }
1222 }
1223 }
1224 if (num2 == -1)
1225 {
1226 return false;
1227 }
1228 vector2.X = tileX * 16 + num2 * 2;
1229 vector2.Y = tileY * 16 + num3;
1230 vector2 -= _trackMagnetOffset;
1231 vector2 -= vector;
1232 Position = vector2;
1233 return true;
1234 }
static Vector2 _trackMagnetOffset
Definition Minecart.cs:67
static int[][] _tileHeight
Definition Minecart.cs:89

References Terraria.Minecart._tileHeight, Terraria.Minecart._trackMagnetOffset, Terraria.Tile.frameX, Terraria.Main.tile, Terraria.Tile.type, and Microsoft.Xna.Framework.Vector2.X.

Referenced by Terraria.Player.GrappleMovement().