DEADSOFTWARE

Use libgdx's timer for fluids
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / world / GameFluidsThread.java
index 570b2c191fbd359f543e74b9a28255b6b516acbb..50fcef14c92ef32896859f10c79c6494c6929b69 100644 (file)
@@ -1,15 +1,15 @@
 package ru.deadsoftware.cavedroid.game.world;
 
-import com.badlogic.gdx.utils.TimeUtils;
+import com.badlogic.gdx.utils.Timer;
 import ru.deadsoftware.cavedroid.game.mobs.MobsController;
 
 import java.util.Arrays;
 
 import static ru.deadsoftware.cavedroid.game.GameItems.*;
 
-class GameFluidsThread extends Thread {
+class GameFluidsThread extends Timer.Task {
 
-    private static final int FLUID_UPDATE_INTERVAL_MS = 100;
+    public static final float FLUID_UPDATE_INTERVAL_SEC = 0.1f;
     private static final int FLUID_STATES = 5;
 
     private static final int[] WATER_IDS = {8, 60, 61, 62, 63};
@@ -20,14 +20,10 @@ class GameFluidsThread extends Thread {
     private final GameWorld mGameWorld;
     private final MobsController mMobsController;
 
-    private final Thread mMainThread;
-
     GameFluidsThread(GameWorld gameWorld,
-                     MobsController mobsController,
-                     Thread mainThread) {
+                     MobsController mobsController) {
         mGameWorld = gameWorld;
         mMobsController = mobsController;
-        mMainThread = mainThread;
     }
 
     private int getBlockState(int id) {
@@ -134,20 +130,8 @@ class GameFluidsThread extends Thread {
         }
     }
 
-    private boolean timeToUpdate() {
-        if (TimeUtils.timeSinceMillis(mFluidLastUpdateTimestamp) >= FLUID_UPDATE_INTERVAL_MS) {
-            mFluidLastUpdateTimestamp = TimeUtils.millis();
-            return true;
-        }
-        return false;
-    }
-
     @Override
     public void run() {
-        while (!this.isInterrupted() && mMainThread.isAlive()) {
-            if (timeToUpdate()) {
-                fluidUpdater();
-            }
-        }
+        fluidUpdater();
     }
 }