@@ -11,13 +11,7 @@ class Parser
11
11
public static function parse <Texture >(bytes : Bytes ) : Aseprite <Texture >
12
12
{
13
13
var reader = new Reader (bytes );
14
- var header = readHeader (reader );
15
- var frames = [for (i in 0 ... header .frames ) readFrame (reader )];
16
- return new Aseprite (header , frames );
17
- }
18
14
19
- static function readHeader (reader : Reader ) : Header
20
- {
21
15
var fileSize : Int = reader .getDWord ();
22
16
var magicNumber : Int = reader .getWord ();
23
17
assert (magicNumber == 0xA5E0 , " FILE NOT ASE" );
@@ -36,10 +30,14 @@ class Parser
36
30
var pixelHeight : Int = reader .getByte ();
37
31
reader .seek (92 );
38
32
39
- return new Header (frames , width , height , colorDepth , flags , transparentColor , numberOfColors , pixelWidth , pixelHeight );
33
+ var sprite = new Aseprite (width , height , colorDepth , transparentColor , numberOfColors , pixelWidth , pixelHeight );
34
+ for (i in 0 ... frames ) {
35
+ sprite .frames .push (readFrame (sprite , reader ));
36
+ }
37
+ return sprite ;
40
38
}
41
39
42
- static function readFrame <Texture >(reader : Reader ) : Frame <Texture >
40
+ static function readFrame <Texture >(sprite : Aseprite < Texture >, reader : Reader ) : Frame <Texture >
43
41
{
44
42
var bytesLength : Int = reader .getDWord ();
45
43
var magicNumber : Int = reader .getWord ();
@@ -53,13 +51,13 @@ class Parser
53
51
var frame = new Frame (frameDuration / 1000 );
54
52
55
53
for (i in 0 ... length ) {
56
- getChunk (frame , reader );
54
+ getChunk (sprite , frame , reader );
57
55
}
58
56
59
57
return frame ;
60
58
}
61
59
62
- static function getChunk <Texture >(frame : Frame <Texture >, reader : Reader ) : Void
60
+ static function getChunk <Texture >(sprite : Aseprite < Texture >, frame : Frame <Texture >, reader : Reader ) : Void
63
61
{
64
62
var chunkSize = reader .getDWord ();
65
63
var chunkType : ChunkType = reader .getWord ();
@@ -71,12 +69,12 @@ class Parser
71
69
assert (false , " CEL_EXTRA_CHUNK" );
72
70
73
71
case COLOR_PROFILE_CHUNK :
74
- assert (frame .colorProfile == null , " frame profile is already set" );
75
- frame .colorProfile = readColorProfile (reader );
72
+ assert (sprite .colorProfile == null , " color profile is already set" );
73
+ sprite .colorProfile = readColorProfile (reader );
76
74
77
75
case FRAME_TAGS_CHUNK :
78
- assert (frame .frameTags == null , " frame tags are already set" );
79
- frame .frameTags = readFrameTags (reader );
76
+ assert (sprite .frameTags == null , " frame tags are already set" );
77
+ sprite .frameTags = readFrameTags (reader );
80
78
81
79
case LAYER_CHUNK :
82
80
frame .layers .push (readLayer (reader ));
@@ -88,8 +86,8 @@ class Parser
88
86
assert (false , " OLD_PALETTE_CHUNK_B" );
89
87
90
88
case PALETTE_CHUNK :
91
- assert (frame .palette == null , " frame palette is already set" );
92
- frame .palette = readPalette (reader );
89
+ assert (sprite .palette == null , " palette is already set" );
90
+ sprite .palette = readPalette (reader );
93
91
94
92
case PATH_CHUNK :
95
93
assert (false , " PATH_CHUNK" );
0 commit comments