Guest User

Untitled

a guest
Feb 23rd, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. package turbo.graphics.atlas;
  2.  
  3. import haxepunk.assets.AssetLoader;
  4. import haxepunk.graphics.atlas.TextureAtlas;
  5. import haxepunk.math.Rectangle;
  6.  
  7. class AsepriteAtlas {
  8. public static function loadAtlas(data:String, image:String):TextureAtlas {
  9. var atlasDef:AsepriteAtlasDef = haxe.Json.parse(AssetLoader.getText(data));
  10. @:privateAccess var atlas = new TextureAtlas(image);
  11.  
  12. for(regionName in Reflect.fields(atlasDef.frames)) {
  13. var region:AsepriteFrameDef = cast Reflect.field(atlasDef.frames, regionName);
  14. atlas.defineRegion(
  15. StringTools.replace(regionName, ".ase", ""),
  16. new Rectangle(region.frame.x, region.frame.y, region.frame.w, region.frame.h)
  17. );
  18. }
  19.  
  20. return return atlas;
  21. }
  22. }
  23.  
  24. private typedef AsepriteAtlasDef = {
  25. var meta:AsepriteMetaDef;
  26. var frames:Dynamic; // StringMap<AsepriteFrameDef>
  27. }
  28.  
  29. private typedef AsepriteMetaDef = {
  30. var app:String;
  31. var version:String;
  32. var image:String;
  33. var format:String;
  34. var size:AsepriteDimsDef;
  35. var scale:Float;
  36. }
  37.  
  38. private typedef AsepriteFrameDef = {
  39. var frame:AsepriteRectDef;
  40. var rotated:Bool;
  41. var trimmed:Bool;
  42. var spriteSourceSize:AsepriteRectDef;
  43. var sourceSize:AsepriteDimsDef;
  44. var duration:Float;
  45. }
  46.  
  47. private typedef AsepriteDimsDef = {
  48. var w:Float;
  49. var h:Float;
  50. }
  51.  
  52. private typedef AsepriteRectDef = {
  53. var x:Float;
  54. var y:Float;
  55. var w:Float;
  56. var h:Float;
  57. }
Add Comment
Please, Sign In to add comment