DEADSOFTWARE

Fix swimming
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / GameRenderer.java
index 018fe1bf750e5b3fba65d98bb1acddcead8af876..b17777952b1c187ab29a6511b438cdf5b14b16fa 100644 (file)
@@ -12,6 +12,7 @@ import ru.deadsoftware.cavedroid.game.mobs.MobsController;
 import ru.deadsoftware.cavedroid.game.mobs.Player;
 import ru.deadsoftware.cavedroid.game.objects.Drop;
 import ru.deadsoftware.cavedroid.game.objects.DropController;
+import ru.deadsoftware.cavedroid.game.world.GameWorld;
 import ru.deadsoftware.cavedroid.misc.ControlMode;
 import ru.deadsoftware.cavedroid.misc.Renderer;
 
@@ -23,8 +24,6 @@ import static ru.deadsoftware.cavedroid.misc.Assets.textureRegions;
 @GameScope
 public class GameRenderer extends Renderer {
 
-    private static final String TAG = "GameRenderer";
-
     private final MainConfig mMainConfig;
     private final GameInput mGameInput;
     private final GameWorld mGameWorld;
@@ -69,14 +68,14 @@ public class GameRenderer extends Renderer {
         if (drawBG) {
             if ((!mGameWorld.hasForeAt(x, y) || mGameWorld.getForeMapBlock(x, y).isTransparent())
                     && mGameWorld.hasBackAt(x, y)) {
-                spriter.draw(mGameWorld.getBackMapBlock(x, y).getTexture(), drawX(x), drawY(y));
+                mGameWorld.getBackMapBlock(x, y).draw(spriter, drawX(x), drawY(y));
                 if (!mGameWorld.hasForeAt(x, y) && x == mGameInput.getCurX() && y == mGameInput.getCurY()) {
                     drawWreck(mGameWorld.getBackMap(mGameInput.getCurX(), mGameInput.getCurY()));
                 }
             }
         }
         if (mGameWorld.hasForeAt(x, y) && mGameWorld.getForeMapBlock(x, y).isBackground() == drawBG) {
-            spriter.draw(mGameWorld.getForeMapBlock(x, y).getTexture(), drawX(x), drawY(y));
+            mGameWorld.getForeMapBlock(x, y).draw(spriter, drawX(x), drawY(y));
             if (x == mGameInput.getCurX() && y == mGameInput.getCurY()) {
                 drawWreck(mGameWorld.getForeMap(mGameInput.getCurX(), mGameInput.getCurY()));
             }
@@ -119,7 +118,7 @@ public class GameRenderer extends Renderer {
         }
     }
 
-    private void drawMob(Mob mob) {
+    private void drawMob(Mob mob, float delta) {
         float mobDrawX = mob.getX() - getCamX();
         float mobDrawY = mob.getY() - getCamY();
 
@@ -131,7 +130,7 @@ public class GameRenderer extends Renderer {
             return;
         }
 
-        mob.draw(spriter, mobDrawX, mobDrawY);
+        mob.draw(spriter, mobDrawX, mobDrawY, delta);
     }
 
     private void drawDrop(Drop drop) {
@@ -212,12 +211,12 @@ public class GameRenderer extends Renderer {
         }
     }
 
-    private void drawGamePlay() {
+    private void drawGamePlay(float delta) {
         Player player = mMobsController.getPlayer();
 
         drawWorld(true);
-        player.draw(spriter, player.getX() - getCamX() - player.getWidth() / 2, player.getY() - getCamY());
-        mMobsController.forEach(this::drawMob);
+        player.draw(spriter, player.getX() - getCamX() - player.getWidth() / 2, player.getY() - getCamY(), delta);
+        mMobsController.forEach( (mob) -> { drawMob(mob, delta); });
         mDropController.forEach(this::drawDrop);
         drawWorld(false);
         drawGUI();
@@ -239,7 +238,7 @@ public class GameRenderer extends Renderer {
 
         spriter.begin();
 
-        drawGamePlay();
+        drawGamePlay(delta);
 
         switch (mMainConfig.getGameUiWindow()) {
             case CREATIVE_INVENTORY:
@@ -286,16 +285,20 @@ public class GameRenderer extends Renderer {
 
         if (mMainConfig.isShowInfo()) {
             spriter.begin();
+            Player player = mMobsController.getPlayer();
             drawString("FPS: " + fps, 0, 0);
-            drawString("X: " + mMobsController.getPlayer().getMapX(), 0, 10);
-            drawString("Y: " + mMobsController.getPlayer().getUpperMapY(), 0, 20);
+            drawString("X: " + player.getMapX(), 0, 10);
+            drawString("Y: " + player.getUpperMapY(), 0, 20);
             drawString("CurX: " + mGameInput.getCurX(), 0, 30);
             drawString("CurY: " + mGameInput.getCurY(), 0, 40);
-            drawString("Mobs: " + mMobsController.getSize(), 0, 50);
-            drawString("Drops: " + mDropController.getSize(), 0, 60);
-            drawString("Block: " + GameItems.getBlockKey(mGameWorld.getForeMap(mGameInput.getCurX(), mGameInput.getCurY())), 0, 70);
-            drawString("Hand: " + GameItems.getItemKey(mMobsController.getPlayer().inventory[mMobsController.getPlayer().slot]), 0, 80);
-            drawString("Game mode: " + mMobsController.getPlayer().gameMode, 0, 90);
+            drawString("Velocity: " + player.getVelocity(), 0, 50);
+            drawString("Swim: " + player.swim, 0, 60);
+            drawString("Mobs: " + mMobsController.getSize(), 0, 70);
+            drawString("Drops: " + mDropController.getSize(), 0, 80);
+            drawString("Block: " + GameItems.getBlockKey(mGameWorld.getForeMap(mGameInput.getCurX(), mGameInput.getCurY())), 0, 90);
+            drawString("Hand: " + GameItems.getItemKey(mMobsController.getPlayer().inventory[mMobsController.getPlayer().slot]), 0, 100);
+            drawString("Game mode: " + player.gameMode, 0, 110);
+            drawString("Check swim: " + GameItems.isFluid(mGameWorld.getForeMap(player.getMapX(), player.getLowerMapY())), 0, 120);
             spriter.end();
         }