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().