project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/RoomPlayerlist.java
author Medo <smaxein@googlemail.com>
Mon, 06 Aug 2012 22:39:36 +0200
changeset 7476 2fb781bbdd51
permissions -rw-r--r--
Hedgeroid: Start using the frontlib for more operations

package org.hedgewars.hedgeroid.netplay;

import org.hedgewars.hedgeroid.Datastructures.Player;
import org.hedgewars.hedgeroid.netplay.RoomPlayerlist.PlayerInRoom;

import android.util.Log;

public class RoomPlayerlist extends ObservableTreeMap<String, PlayerInRoom> {
	private long nextId = 1;
	
	public void addPlayerWithNewId(String name) {
		put(name, new PlayerInRoom(new Player(name), nextId++, false));
	}
	
	public void setReady(String name, boolean ready) {
		PlayerInRoom oldEntry = get(name);
		if(oldEntry==null) {
			Log.e("RoomPlayerlist", "Setting readystate for unknown player "+name);
		} else {
			put(name, new PlayerInRoom(oldEntry.player, oldEntry.id, ready));
		}
	}
	
	// Immutable
	public static class PlayerInRoom {
		public final Player player;
		public final long id;
		public final boolean ready;
		
		public PlayerInRoom(Player player, long id, boolean ready) {
			this.player = player;
			this.id = id;
			this.ready = ready;
		}
	}
}