From a43a6e3ea279a58815edafaf552a571789835e7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kjetil=20=C3=98rbekk?= Date: Tue, 14 Feb 2012 10:01:07 +0100 Subject: Rename com.orbekk{=>.same} in Android project. --- .../main/java/com/orbekk/same/GameController.java | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 same-android/src/main/java/com/orbekk/same/GameController.java (limited to 'same-android/src/main/java/com/orbekk/same/GameController.java') diff --git a/same-android/src/main/java/com/orbekk/same/GameController.java b/same-android/src/main/java/com/orbekk/same/GameController.java new file mode 100644 index 0000000..144d6af --- /dev/null +++ b/same-android/src/main/java/com/orbekk/same/GameController.java @@ -0,0 +1,80 @@ +package com.orbekk.same; + +import java.util.ArrayList; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.orbekk.same.SameInterface; +import com.orbekk.same.StateChangedListener; +import com.orbekk.same.UpdateConflict; + +import android.graphics.Paint; + +public class GameController implements StateChangedListener { + private Logger logger = LoggerFactory.getLogger(getClass()); + private List remotePlayers = new ArrayList(); + private Player localPlayer; + private ChangeListener changeListener = null; + private SameInterface same; + + public static class Player { + public Paint color; + public float posX; + public float posY; + } + + public interface ChangeListener { + void playerStatesChanged(); + } + + public static Player newPlayer() { + Player player = new Player(); + player.color = new Paint(); + player.color.setARGB(255, 255, 0, 0); + player.posX = 0.5f; + player.posY = 0.5f; + return player; + } + + public static GameController create(Player localPlayer, + SameInterface same) { + GameController controller = new GameController(localPlayer, same); + same.addStateChangedListener(controller); + return controller; + } + + GameController(Player localPlayer, SameInterface same) { + this.localPlayer = localPlayer; + this.same = same; + } + + public void setMyPosition(float x, float y) { + this.localPlayer.posX = x; + this.localPlayer.posY = y; + changeListener.playerStatesChanged(); + try { + same.set("position", x + "," + y); + } catch (UpdateConflict e) { + logger.warn("Update failed.", e); + } + } + + public Player getLocalPlayer() { + return localPlayer; + } + + public List getRemotePlayers() { + return remotePlayers; + } + + public void setChangeListener(ChangeListener listener) { + this.changeListener = listener; + } + + @Override + public void stateChanged(String id, String data) { + logger.info("StateChanged({}, {})", id, data); + } +} -- cgit v1.2.3