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

◆ TryDigging()

void Terraria.GameContent.MinecartDiggerHelper.TryDigging ( Player player,
Vector2 trackWorldPosition,
int digDirectionX,
int digDirectionY )
inline

Definition at line 11 of file MinecartDiggerHelper.cs.

12 {
13 digDirectionY = 0;
14 Point point = trackWorldPosition.ToTileCoordinates();
15 if (Framing.GetTileSafely(point).type != 314 || (double)point.Y < Main.worldSurface)
16 {
17 return;
18 }
19 Point point2 = point;
20 point2.X += digDirectionX;
21 point2.Y += digDirectionY;
22 if (AlreadyLeadsIntoWantedTrack(point, point2) || (digDirectionY == 0 && (AlreadyLeadsIntoWantedTrack(point, new Point(point2.X, point2.Y - 1)) || AlreadyLeadsIntoWantedTrack(point, new Point(point2.X, point2.Y + 1)))))
23 {
24 return;
25 }
26 int num = 5;
27 if (digDirectionY != 0)
28 {
29 num = 5;
30 }
31 Point point3 = point2;
32 Point point4 = point3;
33 point4.Y -= num - 1;
34 int x = point4.X;
35 for (int i = point4.Y; i <= point3.Y; i++)
36 {
37 if (!CanGetPastTile(x, i) || !HasPickPower(player, x, i))
38 {
39 return;
40 }
41 }
42 if (CanConsumeATrackItem(player))
43 {
44 int x2 = point4.X;
45 for (int j = point4.Y; j <= point3.Y; j++)
46 {
48 }
49 ConsumeATrackItem(player);
50 PlaceATrack(point2.X, point2.Y);
51 player.velocity.X = MathHelper.Clamp(player.velocity.X, -1f, 1f);
52 if (!DoTheTracksConnectProperly(point, point2))
53 {
54 CorrectTrackConnections(point, point2);
55 }
56 }
57 }
static float Clamp(float value, float min, float max)
Definition MathHelper.cs:46
bool DoTheTracksConnectProperly(Point tileCoordsOfFrontWheel, Point tileCoordsWeWantToReach)
bool HasPickPower(Player player, int x, int y)
void CorrectTrackConnections(Point startCoords, Point endCoords)
bool AlreadyLeadsIntoWantedTrack(Point tileCoordsOfFrontWheel, Point tileCoordsWeWantToReach)

References Terraria.GameContent.MinecartDiggerHelper.AlreadyLeadsIntoWantedTrack(), Terraria.GameContent.MinecartDiggerHelper.CanConsumeATrackItem(), Terraria.GameContent.MinecartDiggerHelper.CanGetPastTile(), Microsoft.Xna.Framework.MathHelper.Clamp(), Terraria.GameContent.MinecartDiggerHelper.ConsumeATrackItem(), Terraria.GameContent.MinecartDiggerHelper.CorrectTrackConnections(), Terraria.GameContent.MinecartDiggerHelper.DoTheTracksConnectProperly(), Terraria.Framing.GetTileSafely(), Terraria.GameContent.MinecartDiggerHelper.HasPickPower(), Terraria.GameContent.MinecartDiggerHelper.MineTheTileIfNecessary(), Terraria.GameContent.MinecartDiggerHelper.PlaceATrack(), Terraria.Entity.velocity, Terraria.Main.worldSurface, Microsoft.Xna.Framework.Point.X, Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Point.Y.