/* * pMapGen.java * * (C) 2005, Alex S. */ import java.util.*; import java.awt.*; /** * random map generator */ public class pMapGen { /* * drop cube */ public static pBrush dropCube(pMatrix matrix,Color color){ Vector cube = new Vector(); // initialize cube Vector v_points = new Vector(); Vector v_faces = new Vector(); v_points.addElement(new double[]{1,-1,1,1}); v_points.addElement(new double[]{1,1,1,1}); v_points.addElement(new double[]{-1,1,1,1}); v_points.addElement(new double[]{-1,-1,1,1}); v_points.addElement(new double[]{1,-1,-1,1}); v_points.addElement(new double[]{1,1,-1,1}); v_points.addElement(new double[]{-1,1,-1,1}); v_points.addElement(new double[]{-1,-1,-1,1}); v_faces.addElement(new int[]{0,1,2,3}); v_faces.addElement(new int[]{4,7,6,5}); v_faces.addElement(new int[]{0,4,5,1}); v_faces.addElement(new int[]{7,3,2,6}); v_faces.addElement(new int[]{1,5,6,2}); v_faces.addElement(new int[]{0,3,7,4}); pBrush brush = new pBrush(); for (int f=0;f 0.9) continue; double sin = Math.sin(theta); double cos = Math.cos(theta); matrix.push(); matrix.rotatey(theta); matrix.scale(32,128,256 + 256 * (i/(double)levels)); matrix.translate(rad + rad * (i/(double)levels),0,0); matrix.rotatez(-Math.PI/3 * (i/(double)levels)); map.brushes.addElement( dropCube(matrix, new Color( (int)(0xFF*i/(double)levels), (int)(0xFF*(sin+1)/2), (int)(0xFF*(cos+1)/2) ) ) ); matrix.pop(); } matrix.pop(); } matrix.push(); matrix.translate(0,(-levels/2.0)*300 - 300.0,0); for(int i=10;i>4;i--){ matrix.translate(0,+256,0); matrix.rotatey(Math.PI/4); matrix.push(); matrix.scale(i*50,16,i*50); map.brushes.addElement(dropCube(matrix, new Color( (int)(0xFF*i/11.0), (int)(0xFF*i/11.0), (int)(0xFF*i/11.0) ) ) ); matrix.pop(); } matrix.pop(); matrix.push(); matrix.scale(10,1100,10); map.brushes.addElement(dropCube(matrix,Color.black)); matrix.pop(); return map; } }