Share Pastebin
Guest
Public paste!

Untitled

By: a guest | Mar 17th, 2010 | Syntax: Java | Size: 3.22 KB | Hits: 45 | Expires: Never
This paste has a previous version, view the difference. Copy text to clipboard
  1. package maps;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Image;
  6. import java.awt.Point;
  7. import java.awt.Toolkit;
  8. import javax.swing.JPanel;
  9.  
  10.  
  11. public class MapGenerator{
  12.         private static int tW; // tile width
  13.         private static int tH; // tile height
  14.         private static int mH; // map height
  15.         private static int mW; // map height
  16.         private static int tX,tY;
  17.         private static MapParser mapReader;
  18.         private static Transparency transpire;
  19.         private static int[][][] map;
  20.         private static int[][] tileSet;
  21.         private static int[][] gids;
  22.         private static int[] tileAmount;
  23.         private static int[] firstGID;
  24.         private static int fGID;
  25.         private static String[] mapSource;
  26.         private static int tR; // amount of rows in tileset
  27.         private static int tilesetX;
  28.         private static int tilesetY;
  29.         private Image[] tileset = new Image[2];
  30.         private static int imgSrc;
  31.  
  32.         public MapGenerator() {
  33.  
  34.                 mapReader = new MapParser();
  35.                 //Gets map resource
  36.                 mapSource = mapReader.getMapResource();
  37.                 firstGID = mapReader.getFirstGID();
  38.                 tilesetFinder();
  39.  
  40.                 //Point aP = new Point();
  41.                 tW = mapReader.getTileSize().x;
  42.                 tH = mapReader.getTileSize().y;
  43.                 //gets amount of tiles in row of tileset
  44.                 tR = (256/tW);
  45.                 //gets map size
  46.                 mW = mapReader.getMapSize().x;
  47.                 mH = mapReader.getMapSize().y;
  48.                 tileAmount = new int[mapReader.getTileAmount()];
  49.                 setupMapArray();
  50.         }
  51.         protected void setupMapArray(){
  52.                 gids = mapReader.getGIDS();
  53.                 map = new int [gids.length][mW][mH];
  54.  
  55.                 for(int lay=0; lay < gids.length; lay++){
  56.                         int i=0;
  57.                         for(int y = 0; y <mH; y++){
  58.                                 for(int x = 0; x < mW; x++){
  59.                                         map[lay][x][y] = gids[lay][i];
  60.                                         tX = (map[lay][x][y] - firstGID[i]) % tR * tW;
  61.                                         tY = (map[lay][x][y] - firstGID[i]) / tR * tW;
  62.                                        
  63.                                         i++;
  64.                                 }
  65.                         }
  66.                 }
  67.         }
  68.         /**
  69.          * First attempt at merging MapGen with Game
  70.          */
  71.         public void tilesetFinder(){
  72.                 for(int i=0; i < firstGID.length; i++){
  73.                                 tileset[i] = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource(mapSource[i]));
  74.                                 // Set Transparent Colour
  75.                                 Color TransparentColor = new Color(0x000000);
  76.                                 tileset[i] = transpire.makeColorTransparent(tileset[i], TransparentColor);
  77.                                 fGID = firstGID[i];
  78.                                 imgSrc = i;
  79.                 }
  80.         }
  81.         public void switchMap(int ch){
  82.                 if(ch < 257){
  83.                         imgSrc = 0;
  84.                 }
  85.                 else {
  86.                         imgSrc = 1;
  87.                 }
  88.         }
  89.         public int getMapWidth(){
  90.                 return mW;
  91.         }
  92.         public int getMapHeight(){
  93.                 return mH;
  94.         }
  95.         public int getTileWidth(){
  96.                 return tW;
  97.         }
  98.         public int getTileHeight(){
  99.                 return tH;
  100.         }
  101.         public int[][][] getSendMap(){
  102.                 return map;
  103.         }
  104.         public Image getImage(){
  105.                 return tileset[imgSrc];
  106.         }
  107.         public int[][] getGIDS(){
  108.                 return gids;
  109.         }
  110.         public int getTileSetRow(){
  111.                 return tR;
  112.         }
  113.         public int[] getFirstGIDArray(){
  114.                 return firstGID;
  115.         }
  116.         public int getfirstGID(){
  117.                 return fGID;
  118.         }
  119.  
  120.         public void drawTile(Graphics g, int layer, int mx, int my){
  121.                 int set = 0;
  122.                 if (map[layer][mx][my] > firstGid[1]) set = 1;
  123.                 int tile = map[layer][mx][my] - firstGid[set];
  124.  
  125.                 g.drawImage(tileset[set], (mx*getTileWidth()), (my*getTileHeight()), (mx*getTileWidth())+getTileWidth(), (my*getTileHeight())+getTileHeight(), getTilesetX(), getTilesetY(), getTilesetX() +  getTileWidth(), getTilesetY() +  getTileHeight(), this );
  126.         }
  127. }