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

◆ TryFittingTileOrientation()

static void Terraria.Minecart.TryFittingTileOrientation ( Point tileCoords,
int? expectedYOffsetForLeft,
int? expectedYOffsetForRight )
inlinestatic

Definition at line 1550 of file Minecart.cs.

1551 {
1552 int nearbyTilesSetLookupIndex = GetNearbyTilesSetLookupIndex(tileCoords.X, tileCoords.Y);
1553 int[] array = _trackSwitchOptions[nearbyTilesSetLookupIndex];
1554 if (array == null)
1555 {
1556 return;
1557 }
1558 Tile tileSafely = Framing.GetTileSafely(tileCoords);
1559 int num = _trackType[tileSafely.FrontTrack()];
1560 int? num2 = null;
1561 foreach (int num3 in array)
1562 {
1563 _ = _leftSideConnection[num3];
1564 _ = _rightSideConnection[num3];
1565 _ = _trackType[num3];
1566 if (expectedYOffsetForLeft.HasValue)
1567 {
1568 int num4 = ConvertOffsetYToTrackConnectionValue(expectedYOffsetForLeft.Value);
1569 if (_leftSideConnection[num3] != num4)
1570 {
1571 continue;
1572 }
1573 }
1574 if (expectedYOffsetForRight.HasValue)
1575 {
1576 int num5 = ConvertOffsetYToTrackConnectionValue(expectedYOffsetForRight.Value);
1577 if (_rightSideConnection[num3] != num5)
1578 {
1579 continue;
1580 }
1581 }
1582 if (_trackType[num3] == num)
1583 {
1584 num2 = num3;
1585 break;
1586 }
1587 }
1588 if (num2.HasValue)
1589 {
1590 tileSafely.FrontTrack((short)num2.Value);
1591 NetMessage.SendTileSquare(-1, tileCoords.X, tileCoords.Y);
1592 }
1593 }
static int[] _leftSideConnection
Definition Minecart.cs:71
static int[][] _trackSwitchOptions
Definition Minecart.cs:87
static int ConvertOffsetYToTrackConnectionValue(int offsetY)
Definition Minecart.cs:1595
static int[] _trackType
Definition Minecart.cs:75
static int[] _rightSideConnection
Definition Minecart.cs:73
static int GetNearbyTilesSetLookupIndex(int i, int j)
Definition Minecart.cs:1161

References Terraria.Minecart._leftSideConnection, Terraria.Minecart._rightSideConnection, Terraria.Minecart._trackSwitchOptions, Terraria.Minecart._trackType, System.array, Terraria.Minecart.ConvertOffsetYToTrackConnectionValue(), Terraria.Minecart.GetNearbyTilesSetLookupIndex(), Terraria.Framing.GetTileSafely(), Terraria.NetMessage.SendTileSquare(), Microsoft.Xna.Framework.Point.X, and Microsoft.Xna.Framework.Point.Y.

Referenced by Terraria.GameContent.MinecartDiggerHelper.CorrectTrackConnections().