X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fmobs%2FMob.java;h=f19d247c4d9df9a972eb4d423cedbd3ea8c35ac1;hb=e5d141fd4e7426c0e3e8fed59a2b0e153dcd8939;hp=2b58f7c626817f0fd9789f453b751d7463aa8b59;hpb=59ff9326fad76d34cbadd3fa3e4b4984892238a4;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java b/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java index 2b58f7c..f19d247 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java +++ b/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java @@ -22,8 +22,31 @@ public abstract class Mob extends Rectangle implements Serializable { } public enum Direction { - LEFT, - RIGHT + + LEFT(0, -1), + RIGHT(1, 1); + + private final int index; + private final int basis; + + /** + * Index for this direction (left = 0, right = 1) + */ + public final int getIndex() { + return index; + } + + /** + * Basis for this direction (left = -1, right = 1) + */ + public final int getBasis() { + return basis; + } + + Direction(int index, int basis) { + this.index = index; + this.basis = basis; + } } protected Vector2 mVelocity; @@ -32,7 +55,7 @@ public abstract class Mob extends Rectangle implements Serializable { protected float mAnim; private Direction mDirection; - private boolean mDead; + protected boolean mDead; private boolean mCanJump; private boolean mFlyMode; @@ -138,10 +161,6 @@ public abstract class Mob extends Rectangle implements Serializable { mDirection = looksLeft() ? Direction.RIGHT : Direction.LEFT; } - protected final int dirMultiplier() { - return looksLeft() ? 0 : 1; - } - public final boolean isDead() { return mDead; } @@ -166,6 +185,10 @@ public abstract class Mob extends Rectangle implements Serializable { return mVelocity; } + protected final void setVelocity(Vector2 velocity) { + mVelocity = velocity; + } + public final boolean canJump() { return mCanJump; } @@ -186,7 +209,7 @@ public abstract class Mob extends Rectangle implements Serializable { return mType; } - public void checkWorldBounds(GameWorld gameWorld) { + public final void checkWorldBounds(GameWorld gameWorld) { if (x + width / 2 < 0) { x += gameWorld.getWidthPx(); } @@ -200,4 +223,8 @@ public abstract class Mob extends Rectangle implements Serializable { public abstract void ai(GameWorld gameWorld, float delta); public abstract void changeDir(); + + public abstract float getSpeed(); + + public abstract void jump(); }