BaseCollisionTile.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package me.hammerle.supersnuvi.tiles;
  2. import me.hammerle.supersnuvi.gamelogic.Level;
  3. import me.hammerle.supersnuvi.util.Face;
  4. import me.hammerle.supersnuvi.util.Utils;
  5. public class BaseCollisionTile extends BaseTile
  6. {
  7. private final float x1;
  8. private final float y1;
  9. private final float x2;
  10. private final float y2;
  11. public BaseCollisionTile(float tMinX, float tMinY, float tMaxX, float tMaxY, float x1, float y1, float x2, float y2)
  12. {
  13. super(tMinX, tMinY, tMaxX, tMaxY);
  14. this.x1 = x1;
  15. this.y1 = y1;
  16. this.x2 = x2;
  17. this.y2 = y2;
  18. }
  19. @Override
  20. public boolean isColliding(float minX, float minY, float maxX, float maxY, int x, int y, Level l)
  21. {
  22. float minTileX = Utils.toCoord(x);
  23. float minTileY = Utils.toCoord(y);
  24. return maxX > minTileX + x1 && minTileX + x2 > minX &&
  25. maxY > minTileY + y1 && minTileY + y2 > minY;
  26. }
  27. @Override
  28. public Face getCollidingFace(float minX, float minY, float maxX, float maxY, int x, int y, Level l)
  29. {
  30. float minTileX = Utils.toCoord(x);
  31. float minTileY = Utils.toCoord(y);
  32. return Utils.getCollidingFace(
  33. minTileX + x1, minTileY + y1, minTileX + x2, minTileY + y2,
  34. minX, minY, maxX, maxY);
  35. }
  36. }