public void draw(Graphics g){
		
		//while we haven't received the room and user from the server do nothing
		if(user.getRoom()==null)return;
		
		//black background
		g.drawImage(ImageLoader.getImage(smoke),0,0,WIDTH,HEIGHT,null);

		//translate to center the room
		g.translate((Display.WIDTH/2)-((Room.ROOM_WIDTH*TILEWIDTH+Room.ROOM_HEIGHT*SLANTWIDTH)/2)+(SLANTWIDTH*Room.ROOM_HEIGHT),
				(Display.HEIGHT/2)-((TILEHEIGHT*Room.ROOM_HEIGHT)/2)+WALLHEIGHT/2);

		//EXPERIMENTAL draw room to the left
		((Graphics2D) g).setComposite(makeComposite(0.5f)); //transparency ftw!

		//the current room being used to draw
		Room room;
		
		
		
		// -- NORTH ROOM
		//translate up and a little to the right to adjust for iso
		g.translate((Room.ROOM_HEIGHT*SLANTWIDTH), -Room.ROOM_HEIGHT*TILEHEIGHT); 
		room = user.getPlayer().getRoom().getNeighbour(Direction.NORTH);
		if(room != null && room.getTile() != null) drawRoom(g,room); // <-- NORTH ROOM
		
		//now centre
		g.translate((-Room.ROOM_HEIGHT*SLANTWIDTH), Room.ROOM_HEIGHT*TILEHEIGHT);
		
		// -- WEST ROOM
		g.translate(-Room.ROOM_WIDTH*TILEWIDTH, 0); //Translate by one room worth to the left
		room = user.getPlayer().getRoom().getNeighbour(Direction.WEST);
		if(room != null && room.getTile() != null) drawRoom(g,room); // WEST ROOM
		
		//Now centre
		g.translate(Room.ROOM_WIDTH*TILEWIDTH, 0);
		
		// -- MAIN ROOM
		((Graphics2D) g).setComposite(makeComposite(1.0f));
		
		room = user.getRoom();
		
		drawRoom(g,room);
		
		((Graphics2D) g).setComposite(makeComposite(0.5f));
		
		// -- EAST ROOM
		g.translate(Room.ROOM_WIDTH*TILEWIDTH, 0); //translate to the right
		room = user.getPlayer().getRoom().getNeighbour(Direction.EAST);
		if(room != null && room.getTile() != null) drawRoom(g,room); // EAST ROOM
		
		// -- ---- ----
		g.translate(-Room.ROOM_WIDTH*TILEWIDTH, 0); //translate to back to middle
		
		
		// -- SOUTH ROOM
		g.translate(-Room.ROOM_HEIGHT*SLANTWIDTH, Room.ROOM_HEIGHT*TILEHEIGHT); //translate down twice
		room = user.getPlayer().getRoom().getNeighbour(Direction.SOUTH);
		if(room != null && room.getTile() != null) drawRoom(g,room); // <-- SOUTH ROOM
		g.translate(Room.ROOM_HEIGHT*SLANTWIDTH, -Room.ROOM_HEIGHT*TILEHEIGHT); //back to middle

		((Graphics2D) g).setComposite(makeComposite(1.0f)); //now lets not draw everything else transparent
		
		//now undo transitions back to original point (0,0)
		g.translate(-((Display.WIDTH/2)-((Room.ROOM_WIDTH*TILEWIDTH+Room.ROOM_HEIGHT*SLANTWIDTH)/2)+(SLANTWIDTH*Room.ROOM_HEIGHT)),
				-((Display.HEIGHT/2)-((TILEHEIGHT*Room.ROOM_HEIGHT)/2)+WALLHEIGHT/2));
	}