52 lines
1.1 KiB
Java
52 lines
1.1 KiB
Java
package mindustry.entities.def;
|
|
|
|
import arc.math.geom.*;
|
|
import arc.math.geom.QuadTree.*;
|
|
import mindustry.annotations.Annotations.*;
|
|
import mindustry.gen.*;
|
|
|
|
@Component
|
|
abstract class HitboxComp implements Posc, QuadTreeObject{
|
|
transient float x, y;
|
|
|
|
float hitSize;
|
|
float lastX, lastY;
|
|
|
|
@Override
|
|
public void update(){
|
|
|
|
}
|
|
|
|
void updateLastPosition(){
|
|
lastX = x;
|
|
lastY = y;
|
|
}
|
|
|
|
void collision(Hitboxc other, float x, float y){
|
|
|
|
}
|
|
|
|
float deltaX(){
|
|
return x - lastX;
|
|
}
|
|
|
|
float deltaY(){
|
|
return y - lastY;
|
|
}
|
|
|
|
boolean collides(Hitboxc other){
|
|
return Intersector.overlapsRect(x - hitSize/2f, y - hitSize/2f, hitSize, hitSize,
|
|
other.x() - other.hitSize()/2f, other.y() - other.hitSize()/2f, other.hitSize(), other.hitSize());
|
|
}
|
|
|
|
@Override
|
|
public void hitbox(Rect rect){
|
|
rect.setCentered(x, y, hitSize, hitSize);
|
|
}
|
|
|
|
public void hitboxTile(Rect rect){
|
|
float scale = 0.66f;
|
|
rect.setCentered(x, y, hitSize * scale, hitSize * scale);
|
|
}
|
|
}
|