import r0ketrem0te.game
import r0ketrem0te.bridge
import r0ketrem0te.packets
import time
import Queue

maxplayer = 2
players = {}

def receivedPacket(packet):
    if isinstance(packet, r0ketrem0te.packets.Join):
        # flags = 1: join ok
        # flags = 0: join not ok
        flags = 0
        if len(players) < maxplayer:
            flags = 1
            players[packet.id] = 10
        ack = r0ketrem0te.packets.Ack(packet.id, packet.ctr, flags)
        qp = r0ketrem0te.bridge.QueuePacket(game.channel, game.playermac, False, ack)
        game.bridge.putInQueue(queue, qp) 
    elif packet.id in players:
        players[packet.id] = 10
        
game = r0ketrem0te.game.Game('/dev/ttyACM0', "testgame", 83, 81, (1,2,3,2,1))

queue = Queue.Queue()
game.bridge.registerQueue(queue)
game.bridge.registerCallback(receivedPacket)

while True:
    time.sleep(1)
    toremove = []
    for player in players:
        players[player]-=1
        if players[player] == 0:
            toremove.append(player)
    for player in toremove:
        print "removing player", player
        del players[player]