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

◆ GetSlopeEdge()

static bool Terraria.Physics.BallCollision.GetSlopeEdge ( ref TileEdges edgesToTest,
Tile tile,
Vector2 tilePosition,
ref LineSegment edge )
inlinestaticprivate

Definition at line 231 of file BallCollision.cs.

232 {
233 switch (tile.slope())
234 {
235 case 0:
236 return false;
237 case 1:
238 edgesToTest &= TileEdges.Bottom | TileEdges.Left | TileEdges.BottomLeftSlope;
239 if ((edgesToTest & TileEdges.BottomLeftSlope) == 0)
240 {
241 return false;
242 }
243 edge.Start = tilePosition;
244 edge.End = new Vector2(tilePosition.X + 16f, tilePosition.Y + 16f);
245 return true;
246 case 2:
247 edgesToTest &= TileEdges.Bottom | TileEdges.Right | TileEdges.BottomRightSlope;
248 if ((edgesToTest & TileEdges.BottomRightSlope) == 0)
249 {
250 return false;
251 }
252 edge.Start = new Vector2(tilePosition.X, tilePosition.Y + 16f);
253 edge.End = new Vector2(tilePosition.X + 16f, tilePosition.Y);
254 return true;
255 case 3:
256 edgesToTest &= TileEdges.Top | TileEdges.Left | TileEdges.TopLeftSlope;
257 if ((edgesToTest & TileEdges.TopLeftSlope) == 0)
258 {
259 return false;
260 }
261 edge.Start = new Vector2(tilePosition.X, tilePosition.Y + 16f);
262 edge.End = new Vector2(tilePosition.X + 16f, tilePosition.Y);
263 return true;
264 case 4:
265 edgesToTest &= TileEdges.Top | TileEdges.Right | TileEdges.TopRightSlope;
266 if ((edgesToTest & TileEdges.TopRightSlope) == 0)
267 {
268 return false;
269 }
270 edge.Start = tilePosition;
271 edge.End = new Vector2(tilePosition.X + 16f, tilePosition.Y + 16f);
272 return true;
273 default:
274 return false;
275 }
276 }

References Terraria.Tile.slope(), Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Vector2.Y.

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