package me.hammerle.supersnuvi.tiles; import me.hammerle.supersnuvi.gamelogic.Level; import me.hammerle.supersnuvi.util.Face; import me.hammerle.supersnuvi.util.Utils; public class BaseCollisionTile extends BaseTile { private final float x1; private final float y1; private final float x2; private final float y2; public BaseCollisionTile(float tMinX, float tMinY, float tMaxX, float tMaxY, float x1, float y1, float x2, float y2) { super(tMinX, tMinY, tMaxX, tMaxY); this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2; } @Override public boolean isColliding(float minX, float minY, float maxX, float maxY, int x, int y, Level l) { float minTileX = Utils.toCoord(x); float minTileY = Utils.toCoord(y); return maxX > minTileX + x1 && minTileX + x2 > minX && maxY > minTileY + y1 && minTileY + y2 > minY; } @Override public Face getCollidingFace(float minX, float minY, float maxX, float maxY, int x, int y, Level l) { float minTileX = Utils.toCoord(x); float minTileY = Utils.toCoord(y); return Utils.getCollidingFace( minTileX + x1, minTileY + y1, minTileX + x2, minTileY + y2, minX, minY, maxX, maxY); } }