Better targeting range calculation

This commit is contained in:
Anuken
2021-02-11 10:12:07 -05:00
parent ea2b57ec4b
commit 27c8efc672
10 changed files with 28 additions and 12 deletions

View File

@@ -43,7 +43,7 @@ import static mindustry.Vars.*;
@EntityDef(value = {Buildingc.class}, isFinal = false, genio = false, serialize = false)
@Component(base = true)
abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, QuadTreeObject, Displayable, Senseable, Controllable{
abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, QuadTreeObject, Displayable, Senseable, Controllable, Sized{
//region vars and initialization
static final float timeToSleep = 60f * 1, timeToUncontrol = 60f * 6;
static final ObjectSet<Building> tmpTiles = new ObjectSet<>();
@@ -1277,6 +1277,11 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
return tile.build == self() && !dead();
}
@Override
public float hitSize(){
return tile.block().size * tilesize;
}
@Replace
@Override
public void kill(){

View File

@@ -8,7 +8,7 @@ import mindustry.annotations.Annotations.*;
import mindustry.gen.*;
@Component
abstract class HitboxComp implements Posc, QuadTreeObject{
abstract class HitboxComp implements Posc, Sized, QuadTreeObject{
@Import float x, y;
transient float lastX, lastY, deltaX, deltaY, hitSize;
@@ -28,6 +28,11 @@ abstract class HitboxComp implements Posc, QuadTreeObject{
updateLastPosition();
}
@Override
public float hitSize(){
return hitSize;
}
void getCollisions(Cons<QuadTree> consumer){
}

View File

@@ -0,0 +1,5 @@
package mindustry.entities.comp;
public interface Sized{
float hitSize();
}