44 lines
1,020 B
Java
44 lines
1,020 B
Java
package ei.game.scene.units;
|
|
|
|
import ei.engine.math.Vector2f;
|
|
import ei.engine.math.Vector2i;
|
|
import ei.engine.scene.Sprite;
|
|
import ei.game.gamestate.InGameState;
|
|
import ei.game.player.Human;
|
|
import ei.game.scene.GameEntity;
|
|
import ei.game.scene.weapons.Weapon;
|
|
|
|
public abstract class Unit extends GameEntity{
|
|
|
|
private Sprite looks;
|
|
private Weapon weapon;
|
|
private Vector2i oldPos;
|
|
|
|
public Unit(int l) {
|
|
super(l);
|
|
looks = new Sprite("none");
|
|
InGameState.getHuman().addUnit(this);
|
|
setPos(0, 0);
|
|
}
|
|
|
|
public Sprite getSprite(){
|
|
return looks;
|
|
}
|
|
public void setSprite(Sprite image) {
|
|
looks = image;
|
|
}
|
|
public void setPos(int x, int y) {
|
|
oldPos = new Vector2i(x, y);
|
|
InGameState.getMap().setPos(this, x, y);
|
|
|
|
}
|
|
public void move(int x, int y) {
|
|
if(oldPos!=null) {
|
|
InGameState.getMap().removePos(oldPos.getX(), oldPos.getY());
|
|
}
|
|
setPos(x, y);
|
|
looks.move(InGameState.getMap().getPixelByPos((int)x, (int)y));
|
|
oldPos = new Vector2i(x, y);
|
|
}
|
|
|
|
}
|