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

◆ GetLeftOrRightEdge()

static bool Terraria.Physics.BallCollision.GetLeftOrRightEdge ( TileEdges edgesToTest,
int x,
int y,
Vector2 tilePosition,
ref LineSegment edge )
inlinestaticprivate

Definition at line 309 of file BallCollision.cs.

310 {
311 if ((edgesToTest & TileEdges.Left) != 0)
312 {
313 Tile tile = Main.tile[x, y];
314 Tile tile2 = Main.tile[x - 1, y];
315 if (IsNeighborSolid(tile2) && tile2.slope() != 1 && tile2.slope() != 3 && (!tile2.halfBrick() || tile.halfBrick()))
316 {
317 return false;
318 }
319 edge.Start = new Vector2(tilePosition.X, tilePosition.Y);
320 edge.End = new Vector2(tilePosition.X, tilePosition.Y + 16f);
321 if (tile.halfBrick())
322 {
323 edge.Start.Y += 8f;
324 }
325 return true;
326 }
327 if ((edgesToTest & TileEdges.Right) != 0)
328 {
329 Tile tile3 = Main.tile[x, y];
330 Tile tile4 = Main.tile[x + 1, y];
331 if (IsNeighborSolid(tile4) && tile4.slope() != 2 && tile4.slope() != 4 && (!tile4.halfBrick() || tile3.halfBrick()))
332 {
333 return false;
334 }
335 edge.Start = new Vector2(tilePosition.X + 16f, tilePosition.Y);
336 edge.End = new Vector2(tilePosition.X + 16f, tilePosition.Y + 16f);
337 if (tile3.halfBrick())
338 {
339 edge.Start.Y += 8f;
340 }
341 return true;
342 }
343 return false;
344 }
static bool IsNeighborSolid(Tile tile)

References Terraria.Tile.halfBrick(), Terraria.Physics.BallCollision.IsNeighborSolid(), Terraria.Tile.slope(), Terraria.Main.tile, Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Vector2.Y.

Referenced by Terraria.Physics.BallCollision.GetCollisionPointForTile().