DEADSOFTWARE

Code improvements
[cavedroid.git] / core / src / ru / deadsoftware / cavecraft / game / mobs / Mob.java
1 package ru.deadsoftware.cavecraft.game.mobs;
3 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
4 import com.badlogic.gdx.math.Rectangle;
5 import com.badlogic.gdx.math.Vector2;
7 import java.io.Serializable;
9 public abstract class Mob implements Serializable {
11 protected int anim, animSpeed = 6;
12 private float width, height;
13 private int dir;
15 public Vector2 pos;
16 public Vector2 mov;
17 private boolean dead;
19 public boolean canJump;
21 protected Mob(float x, float y, float width, float height, int dir) {
22 pos = new Vector2(x, y);
23 this.width = width;
24 this.height = height;
25 canJump = false;
26 dead = false;
27 this.dir = dir;
28 }
30 public int getMapX() {
31 return (int) (pos.x + (getWidth() / 2)) / 16;
32 }
34 public int getMapY() {
35 return (int) (pos.y + (getHeight() / 2)) / 16;
36 }
38 public float getWidth() {
39 return width;
40 }
42 public float getHeight() {
43 return height;
44 }
46 public int getDir() {
47 return dir;
48 }
50 protected void switchDir() {
51 dir = -dir + 1;
52 }
54 public boolean isDead() {
55 return dead;
56 }
58 public void kill() {
59 dead = true;
60 }
62 public Rectangle getRect() {
63 return new Rectangle(pos.x, pos.y, getWidth(), getHeight());
64 }
66 public abstract void ai();
68 public abstract void changeDir();
70 public abstract void draw(SpriteBatch spriteBatch, float x, float y);
72 public abstract int getType(); //0 - mob, 10 - sand, 11 - gravel
73 }