public Client( ResourceContext rc ) {
		this.resourceContext = rc;
		sceneCanvas = new SceneCanvas(resourceContext);
		sceneCanvas.setBackground(Color.BLACK);
		cerealWorldIo = rc.getCerealWorldIo();
		sceneCanvas.addOverlay(new UIOverlay() {
			@Override public void draw(Graphics g, int width, int height) {
				int y = 4;
				int tileSize = 16;
				int x = width - tileSize - 4; 
				final Getter<BufferedImage> imageGetter = resourceContext.imageGetter;
				for( int bsi=0; bsi<wandBlocks.length; ++bsi ) {
					BlockStack bs = wandBlocks[bsi];
					for( Block b : bs.getBlocks() ) {
						Icon ic = b.icon;
						ImageHandle ih = resourceContext.getImageHandle(ic.imageUri);
						if( ih.isCompletelyTransparent ) continue;
						try {
							// TODO: Scale and place according to icon x, y, w, h, where
							// -0.5 = top/left edge of cell, +0.5 = bottom/right edge of cell
							g.drawImage( ih.getScaled(imageGetter,tileSize,tileSize), x, y, null );
						} catch( ResourceNotFound e ) {
							System.err.println("Couldn't load image "+ih.original.getUri());
							g.setColor( Color.PINK );
							g.fillRect( x+1, y+1, tileSize-2, tileSize-2 );
						}
					}
					if( bsi == currentWandBlockIndex ) {
						g.setColor(Color.WHITE);
						g.drawRect(x-1, y-1, tileSize+2, tileSize+2);
					}
					y += tileSize + 8;
				}
			}
		});
	}