Beispiel #1
0
  // get the object as a byte array
  public synchronized byte[] getAsByteArray() {
    ByteBuffer buffer = ByteBuffer.allocate(packet_size);
    buffer.order(Constants.NETWORK_BYTEORDER);

    buffer.put(Constants.STRUCT_HEADER.getBytes(), 0, 4);
    buffer.putInt(Constants.STRUCT_VERSION);

    buffer.put(numPlayers);
    buffer.put(gameState);
    buffer.put(firstHalf);
    buffer.put(kickOffTeam);

    buffer.put(secGameState);
    buffer.put(dropInTeam);
    buffer.putShort(dropInTime);

    buffer.putInt(estimatedSecs);

    for (byte team = 0; team < Constants.NUM_TEAMS; team++) {
      buffer.put(getTeamNumber(team));
      buffer.put(team);
      buffer.put(getGoalColour(team));
      buffer.put(getScore(team));

      for (byte i = 0; i < Constants.MAX_NUM_PLAYERS; i++) {
        RobotInfo robot = teams[team].getPlayer(i);
        buffer.putShort(robot.getPenalty());
        buffer.putShort(robot.getSecsTillUnpenalised());
      }
    }

    return buffer.array();
  }