summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2016-02-16 17:01:06 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2016-02-16 17:01:06 +0100
commit6a600abf78ba8e1933f3c30f7409353bf786b2dc (patch)
treee0bbe147d7d83cb0327f935408c7fdeb9d4c9f14
parent20ebc45f1ce064bd43a8f5ab8f8338feb3790e41 (diff)
downloadRustAndDust-6a600abf78ba8e1933f3c30f7409353bf786b2dc.zip
RustAndDust-6a600abf78ba8e1933f3c30f7409353bf786b2dc.tar.gz
add util/GameRecord
-rw-r--r--core/src/ch/asynk/rustanddust/util/GameRecord.java92
1 files changed, 92 insertions, 0 deletions
diff --git a/core/src/ch/asynk/rustanddust/util/GameRecord.java b/core/src/ch/asynk/rustanddust/util/GameRecord.java
new file mode 100644
index 0000000..82aa9b4
--- /dev/null
+++ b/core/src/ch/asynk/rustanddust/util/GameRecord.java
@@ -0,0 +1,92 @@
+package ch.asynk.rustanddust.util;
+
+import java.util.Date;
+import java.text.DateFormat;
+
+import com.badlogic.gdx.utils.Pool;
+import com.badlogic.gdx.utils.Disposable;
+
+import ch.asynk.rustanddust.ui.List;
+import ch.asynk.rustanddust.game.Config.GameMode;
+import ch.asynk.rustanddust.engine.util.Collection;
+import ch.asynk.rustanddust.engine.util.IterableArray;
+
+public class GameRecord implements List.ListElement, Disposable, Pool.Poolable
+{
+ public int g;
+ public int p1;
+ public int p2;
+ public int b;
+ public GameMode m;
+ public Date ts;
+ public String p1Name;
+ public String p2Name;
+ public String bName;
+ public String s;
+
+ public static Collection<List.ListElement> list = new IterableArray<List.ListElement>(10);
+
+ private static final Pool<GameRecord> gameRecordPool = new Pool<GameRecord>()
+ {
+ @Override
+ protected GameRecord newObject() {
+ return new GameRecord();
+ }
+ };
+
+ public static void clearPool()
+ {
+ gameRecordPool.clear();
+ }
+
+ public static GameRecord get()
+ {
+ GameRecord r = gameRecordPool.obtain();
+ return r;
+ }
+
+ public static void clearList()
+ {
+ for(List.ListElement r : list)
+ ((GameRecord) r).dispose();
+ list.clear();
+ }
+
+ public GameRecord()
+ {
+ }
+
+ @Override
+ public void reset()
+ {
+ this.s = null;
+ }
+
+ @Override
+ public void dispose()
+ {
+ gameRecordPool.free(this);
+ }
+
+ @Override
+ public String s()
+ {
+ if (s == null) {
+ if (m == GameMode.SOLO)
+ s = String.format("# - %s - %s - %s - %s", m.s, bName, p1Name, DateFormat.getDateInstance().format(ts));
+ else {
+ if (p1 == 1)
+ s = String.format("# - %s - %s - %s - %s", m.s, bName, p2Name, DateFormat.getDateInstance().format(ts));
+ else
+ s = String.format(" - %s - %s - %s - %s", m.s, bName, p1Name, DateFormat.getDateInstance().format(ts));
+ }
+ }
+ return s;
+ }
+
+ @Override
+ public String toString()
+ {
+ return String.format("%d %d(%s) %d(%s) %d(%s) %s %s", g, p1, p1Name, p2, p2Name, b, bName, m.s, DateFormat.getDateInstance().format(ts));
+ }
+}