package org.hooliguns.ninja.telnet.teensyninja; import java.util.StringTokenizer; import org.hooliguns.ninja.telnet.RealtimeStateReporter; public class TeensyNinjaStateParser implements RealtimeStateReporter { int curX; int curY; int curVX; int curVY; boolean isHalted; public TeensyNinjaStateParser(String stateString) { StringTokenizer tokenizer = new StringTokenizer(stateString, "\r\n,", false); while(tokenizer.hasMoreTokens()) { String token = tokenizer.nextToken(); if (token.startsWith("cur_x=")) { curX = Integer.parseInt(token.substring(6)); } else if (token.startsWith("cur_y=")) { curY = Integer.parseInt(token.substring(6)); } else if (token.startsWith("cur_vx=")) { curY = Integer.parseInt(token.substring(7)); } else if (token.startsWith("cur_vy=")) { curY = Integer.parseInt(token.substring(7)); } else if (token.startsWith("IS_HALTED=")) { isHalted = token.charAt(12) == '1'; } } } public int getCurrentX() { return curX; } public int getCurrentY() { return curY; } public int getVelocityX() { return curVX; } public int getVelocityY() { return curVY; } public boolean isInMotion() { return !isHalted; } }