Guest User

Untitled

a guest
Apr 14th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package
  2. {
  3.     import net.flashpunk.Entity;
  4.     import net.flashpunk.graphics.Tilemap;
  5.     import net.flashpunk.masks.Grid;
  6.  
  7.     import flash.utils.ByteArray;
  8.  
  9.     public class Ground extends Entity
  10.     {
  11.         [Embed(source = "media/maps/tiles/tileset-exterior-00.png")] private const TILES:Class;
  12.  
  13.         [Embed(source = "media/maps/exterior-map-00.xml", mimeType = "application/octet-stream")] private const MAP_DATA:Class;
  14.  
  15.         public var map:Tilemap;
  16.         public var solids:Grid;
  17.  
  18.         public function Ground ():void
  19.         {
  20.             var data:String = "";
  21.             var bytes:ByteArray = new MAP_DATA;
  22.             var layout:XML = new XML (bytes.readUTFBytes (bytes.length));
  23.  
  24.             map = new Tilemap
  25.             (
  26.                 TILES,
  27.                 (layout.@width * layout.@tilewidth),
  28.                 (layout.@height * layout.@tileheight),
  29.                 layout.@tilewidth,
  30.                 layout.@tileheight
  31.             );
  32.  
  33.             data = convertTileData (layout.layer [0].data);
  34.             map.loadFromString (data);
  35.  
  36.             graphic = map;
  37.  
  38.  
  39.             solids = new Grid
  40.             (solids = new Grid
  41.             (
  42.                 (layout.@width * layout.@tilewidth),
  43.                 (layout.@height * layout.@tileheight),
  44.                 layout.@tilewidth,
  45.                 layout.@tileheight
  46.             );
  47.  
  48.             data = layout.layer [1].data;
  49.             solids.loadFromString (data);
  50.  
  51.             mask = solids;
  52.                 (layout.@width * layout.@tilewidth),
  53.                 (layout.@height * layout.@tileheight),
  54.                 layout.@tilewidth,
  55.                 layout.@tileheight
  56.             );
  57.  
  58.             data = layout.layer [1].data;
  59.             solids.loadFromString (data);
  60.  
  61.             mask = solids;
  62.             type = "solid";
  63.         }
  64.  
  65.         public function convertTileData (data:String):String
  66.         {
  67.             var row:Array = data.split (",");
  68.             var newData:String = "";
  69.  
  70.             var counter:int = 0;
  71.             var value:int = 0;
  72.  
  73.             for (counter = 0; counter < row.length; counter++)
  74.             {
  75.                 if (row [counter].indexOf ("\n") > -1)
  76.                 {
  77.                     row [counter] = parseInt (row [counter]) - 1;
  78.  
  79.                     if (row [counter] < 0)
  80.                     {
  81.                         row [counter] = 0;
  82.                     }
  83.  
  84.                     if (counter < (row.length - 1))
  85.                     {
  86.                         row [counter] = "\n" + row [counter];
  87.                     }
  88.                 }
  89.                 else
  90.                 {
  91.                     row [counter] = parseInt (row [counter]) - 1;
  92.  
  93.                     if (row [counter] < 0)
  94.                     {
  95.                         row [counter] = 0;
  96.                     }
  97.                 }
  98.             }
  99.  
  100.             newData = row.toString();
  101.             return newData;
  102.         }
  103.     }
  104. }
Add Comment
Please, Sign In to add comment