RampTile.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package me.hammerle.supersnuvi.tiles;
  2. import me.hammerle.supersnuvi.entity.Entity;
  3. import me.hammerle.supersnuvi.util.CollisionLine;
  4. import me.hammerle.supersnuvi.gamelogic.Level;
  5. import me.hammerle.supersnuvi.util.Utils;
  6. public class RampTile extends BaseTile
  7. {
  8. private final float lx1;
  9. private final float ly1;
  10. private final float lx2;
  11. private final float ly2;
  12. public RampTile(float tMinX, float fMinY, float tMaxX, float tMaxY, float x1, float y1, float x2, float y2)
  13. {
  14. super(tMinX, fMinY, tMaxX, tMaxY);
  15. lx1 = x1;
  16. ly1 = y1;
  17. lx2 = x2;
  18. ly2 = y2;
  19. CollisionLine line = new CollisionLine(x1, y1, x2, y2);
  20. super.setCollisionBox(line);
  21. super.setMovementBox(line);
  22. }
  23. @Override
  24. public boolean shouldAiUseCollisionBox(int x, int y, Level l)
  25. {
  26. return false;
  27. }
  28. @Override
  29. public boolean isMoveColliding(float minX, float minY, float maxX, float maxY, int x, int y, Level l)
  30. {
  31. float x1 = Utils.toCoord(x) + lx1;
  32. float y1 = Utils.toCoord(y) + ly1;
  33. float x2 = Utils.toCoord(x) + lx2;
  34. float y2 = Utils.toCoord(y) + ly2;
  35. return CollisionLine.intersect(x1, y1, x2, y2, minX, minY, maxX, minY) ||
  36. CollisionLine.intersect(x1, y1, x2, y2, maxX, minY, maxX, maxY) ||
  37. CollisionLine.intersect(x1, y1, x2, y2, maxX, maxY, minX, maxY) ||
  38. CollisionLine.intersect(x1, y1, x2, y2, minX, maxY, minX, minY);
  39. }
  40. }