File tree 3 files changed +7
-4
lines changed
3 files changed +7
-4
lines changed Original file line number Diff line number Diff line change @@ -47,7 +47,7 @@ export class Sprite extends AssetBase {
47
47
r . align ( 4 ) ;
48
48
}
49
49
if ( version [ 0 ] >= 2017 ) {
50
- this . renderDataKey = bufferToHex ( r . readBuffer ( 16 + 8 ) ) ;
50
+ this . renderDataKey = bufferToHex ( r . readBuffer ( 24 ) , true ) ;
51
51
this . atlasTags = r . readAlignedStringArray ( ) ;
52
52
this . spriteAtlas = new PPtr ( this . __info , r ) ;
53
53
}
Original file line number Diff line number Diff line change @@ -33,7 +33,7 @@ export class SpriteAtlas extends AssetBase {
33
33
34
34
const renderDataMapSize = r . readUInt32 ( ) ;
35
35
for ( let i = 0 ; i < renderDataMapSize ; i ++ ) {
36
- const key = bufferToHex ( r . readBuffer ( 16 + 8 ) ) ;
36
+ const key = bufferToHex ( r . readBuffer ( 24 ) , true ) ;
37
37
const data = new SpriteAtlasData ( this . __info , r ) ;
38
38
this . renderDataMap . set ( key , data ) ;
39
39
}
Original file line number Diff line number Diff line change @@ -17,8 +17,11 @@ export const hexToUInt8Array = (hex: string) => {
17
17
return new Uint8Array ( ( hex . match ( / [ \d a - f ] { 2 } / gi) || [ ] ) . map ( h => parseInt ( h , 16 ) ) ) ;
18
18
} ;
19
19
20
- export const bufferToHex = ( buffer : ArrayBuffer ) =>
21
- [ ...new Uint8Array ( buffer ) ] . map ( x => x . toString ( 16 ) . padStart ( 2 , '0' ) ) . join ( '' ) ;
20
+ export const bufferToHex = ( buffer : ArrayBuffer , allZeroToEmpty = false ) => {
21
+ const arr = [ ...new Uint8Array ( buffer ) ] ;
22
+ if ( allZeroToEmpty && arr . every ( v => ! v ) ) return '' ;
23
+ return arr . map ( x => x . toString ( 16 ) . padStart ( 2 , '0' ) ) . join ( '' ) ;
24
+ } ;
22
25
23
26
export const bufferToString = ( data : AllowSharedBufferSource , encoding ?: string ) =>
24
27
new TextDecoder ( encoding ) . decode ( data ) ;
You can’t perform that action at this time.
0 commit comments