JuiceBoxx

cool shit

May 26th, 2016
593
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package;
  2.  
  3. import flixel.group.FlxGroup;
  4. import flixel.math.FlxPoint;
  5. import flixel.math.FlxRect;
  6. import registry.REG;
  7. import flixel.FlxG;
  8. import flixel.FlxSprite;
  9. import flixel.FlxState;
  10. import flixel.text.FlxText;
  11. import flixel.util.FlxColor;
  12. import flixel.math.FlxMath;
  13. import flixel.tile.FlxTilemap;
  14. import flixel.addons.editors.ogmo.FlxOgmoLoader;
  15. import flixel.FlxObject;
  16. import flixel.addons.display.FlxBackdrop;
  17. import flixel.math.FlxMath;
  18.  
  19. class GameState extends FlxState
  20. {
  21.     public var tileMap:FlxOgmoLoader;
  22.     public var floor:FlxTilemap;
  23.     public var goopy:FlxTypedGroup<FlxObject>;
  24.    
  25.     public var baseBG:FlxBackdrop;
  26.     public var layer1:FlxTypedGroup<FlxSprite>;
  27.     public var layer2:FlxTypedGroup<FlxSprite>;
  28.     public var layer3:FlxTypedGroup<FlxSprite>;
  29.    
  30.     override public function create():Void
  31.     {
  32.         super.create();
  33.        
  34.         //Tilemap
  35.         tileMap = new FlxOgmoLoader('assets/maps/' + REG.levelType + '_' + Std.string(REG.levelID) + '.oel');
  36.        
  37.         floor = tileMap.loadTilemap('assets/maps/tiles/' + REG.levelType + '.png', 96, 96, "tiles");
  38.         floor = setTileProperties(floor, [FlxObject.NONE]);
  39.        
  40.         goopy = new FlxTypedGroup<FlxObject>();
  41.        
  42.         //Backgrounds
  43.         baseBG = new FlxBackdrop('assets/sprites/backgrounds/base.png');
  44.         layer1 = new FlxTypedGroup<FlxSprite>();
  45.         layer2 = new FlxTypedGroup<FlxSprite>();
  46.         layer3 = new FlxTypedGroup<FlxSprite>();
  47.        
  48.         getTBG(1, layer1);
  49.         getTBG(2, layer2);
  50.         getTBG(3, layer3);
  51.        
  52.         addObjects();
  53.     }
  54.    
  55.     //Get Tiled Backdrops
  56.     function getTBG(LayerID:Int, Layer:FlxTypedGroup<FlxSprite>)
  57.     {
  58.         var tS:FlxPoint = new FlxPoint(200, 182); //Tile Size
  59.         var T:FlxPoint = new FlxPoint(FlxG.width / tS.x, FlxG.height / tS.y);
  60.        
  61.         for (i in 0 ... Math.round(T.y + 1))
  62.         {
  63.             for (b in 0 ... Math.round(T.x + 1))
  64.             {
  65.                 var d:FlxSprite = new FlxSprite(b * tS.x, i * tS.y, 'assets/sprites/backgrounds/layer' + Std.string(LayerID) + '.png');
  66.                
  67.                 switch(LayerID)
  68.                 {
  69.                     case 1:
  70.                         d.velocity.y = -10;
  71.                         d.alpha = 0.2;
  72.                     case 2:
  73.                         d.alpha = 0.2;
  74.                     case 3:
  75.                         d.velocity.y = -20;
  76.                         d.alpha = 0.3;
  77.                        
  78.                 }
  79.                
  80.                 if (LayerID == 2)
  81.                 {
  82.                     d.loadGraphic('assets/sprites/backgrounds/layer2.png', true, 200, 182);
  83.                     d.animation.add('water', [0, 1, 2, 3, 4, 5, 6, 7, 8], 8, true);
  84.                     d.animation.play('water', true);
  85.                 }
  86.                
  87.                 Layer.add(d);
  88.             }
  89.         }
  90.     }
  91.    
  92.     //Get entities
  93.     function loadEntities(name:String, data:Xml):Void
  94.     {
  95.         var x:Int = Std.parseInt(data.get("x"));
  96.         var y:Int = Std.parseInt(data.get("y"));
  97.        
  98.         switch (name)
  99.         {
  100.             case "bound":
  101.                 goopy.add(new FlxObject(x, y, Std.parseInt(data.get("width")), Std.parseInt(data.get("height"))));
  102.         }
  103.     }
  104.    
  105.     //Add Objects
  106.    
  107.     function addObjects()
  108.     {
  109.         //Load Entities
  110.         tileMap.loadEntities(loadEntities, 'entities');
  111.        
  112.         //BG
  113.         add(baseBG);
  114.         add(layer1);
  115.         add(layer2);
  116.         add(layer3);
  117.        
  118.         //Tilemap
  119.         add(floor);
  120.         add(goopy);
  121.     }
  122.  
  123.     function setTileProperties(Layer:FlxTilemap, T:Array<Int>)
  124.     {
  125.         var tmap:FlxTilemap = Layer;
  126.        
  127.         for (i in 1 ... T.length)
  128.         {
  129.             tmap.setTileProperties(i, T[i-1]);
  130.         }
  131.        
  132.         return tmap;
  133.     }
  134.    
  135.     override public function update(elapsed:Float):Void
  136.     {
  137.         super.update(elapsed);
  138.        
  139.         layer1.forEach(bgTile);
  140.         layer2.forEach(bgTile);
  141.         layer3.forEach(bgTile);
  142.     }
  143.    
  144.     function bgTile(S:FlxSprite)
  145.     {
  146.         if (S.y <= -182)
  147.             S.y = FlxG.height+12;
  148.     }
  149. }
RAW Paste Data