From b66b04cbbd0ce67f8d7fb8aa588807ea93b1295f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Wed, 18 Feb 2015 16:49:51 +0100 Subject: add game.Command extends engine.Order --- core/src/ch/asynk/tankontank/game/Command.java | 88 ++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 core/src/ch/asynk/tankontank/game/Command.java diff --git a/core/src/ch/asynk/tankontank/game/Command.java b/core/src/ch/asynk/tankontank/game/Command.java new file mode 100644 index 0000000..903c18b --- /dev/null +++ b/core/src/ch/asynk/tankontank/game/Command.java @@ -0,0 +1,88 @@ +package ch.asynk.tankontank.game; + +import com.badlogic.gdx.utils.Pool; +import com.badlogic.gdx.utils.Json; +import com.badlogic.gdx.utils.JsonValue; + +import ch.asynk.tankontank.engine.Order; +import ch.asynk.tankontank.engine.Move; + +public class Command extends Order +{ + public enum CommandType + { + NONE, + MOVE, + ENGAGE, + PROMOTE, + END_OF_TURN; + } + + private static final Pool orderPool = new Pool() + { + @Override + protected Command newObject() { + return new Command(); + } + }; + + public static Command get(Player player) + { + Command c = orderPool.obtain(); + c.player = player; + return c; + } + + public CommandType type; + public Player player; + public Unit unit; + public Move move; + + private Command() + { + reset(); + } + + @Override + public void dispose() + { + orderPool.free(this); + } + + @Override + public void reset() + { + this.type = CommandType.NONE; + this.player = null; + this.unit = null; + if (this.move != null) { + this.move.dispose(); + this.move = null; + } + } + + @Override + public String toString() + { + return String.format("%s %s : ", type, unit.id); + } + + public void setMove(Unit unit, Move move) + { + this.type = CommandType.MOVE; + this.unit = unit; + this.move = move; + } + + @Override + public void write(Json json) + { + // FIXME Command.write(Json); + } + + @Override + public void read(Json json, JsonValue jsonMap) + { + // FIXME Command.read(Json, JsonValue); + } +} -- cgit v1.1-2-g2b99