protected void initLevel3Tree( double cx, double cy, WorldUpdateBuilder ub ) {
		switch( rand.nextInt(4) ) {
		case( 0 ):
			// ring!
			double rad = 1024+rand.nextDouble()*2048;
			double cir = rad * 2 * Math.PI;
			int count = (int)(cir / 1500)+1;
			for( int i=0; i<count; ++i ) {
				addLevel3Cluster( cx+rad*Math.cos(i*2*Math.PI/count), cy+rad*Math.sin(i*2*Math.PI/count), ub );
			}
			break;
		case( 1 ):
			// star!
			addLevel3Cluster( cx, cy, ub );
			addLevel3Cluster( cx - 1500, cy, ub );
			addLevel3Cluster( cx + 1500, cy, ub );
			addLevel3Cluster( cx, cy - 1500, ub );
			addLevel3Cluster( cx, cy + 1500, ub );
			break;
		case( 2 ):
			// line!
			double ang = rand.nextDouble()*Math.PI*2;
			for( int i=rand.nextInt(20); i>=0; --i ) {
				cx += 1400*Math.cos(ang);
				cy += 1400*Math.sin(ang);
				addLevel3Cluster( cx, cy, ub );
				ang += rand.nextGaussian();
			}
			break;
		case( 3 ):
			// random!
			for( int i=rand.nextInt(7); i>=0; --i ) {
				addLevel2Cluster( cx + rand.nextDouble()*4096-2048, cy + rand.nextDouble()*4096-2048, ub );
			}
		}
	}