Armour File Format
Please remember java uses big endian byte order!
All strings start with an unsigned short that holds the string length in bytes.
| Data Type | Name | Example | Note |
|---|---|---|---|
| int | file version | 13 | |
| ascii-string | skin header | AW-SKIN-START | |
| ascii-string | properties header | PROPS-START | |
| properties | skin properties | see below for formatting | |
| ascii-string | properties footer | PROPS-END | |
| ascii-string | skin type header | TYPE-START | |
| utf8-string | skin type registry name | armourers:head | see skin types |
| ascii-string | skin type footer | TYPE-END | |
| ascii-string | skin paint header | PAINT-START | |
| boolean | have paint | true | |
| 2048*int only if have paint was true |
rgbt pixel data | true | first 3 bytes are rbg last byte is for paint type |
| ascii-string | skin paint footer | PAINT-END | |
| int | skin parts count | 3 | |
| for each skin part | |||
| skin-part | skin part | see below for formatting | |
| ascii-string | skin footer | AW-SKIN-END |
| Data Type | Name | Example | Note |
|---|---|---|---|
| int | properties count | 3 | |
| for each property | |||
| utf8-string | property key | authorName | |
| byte | data type | 0 | 0 = string (utf8), 1 = int, 2 = double, 3 = boolean |
| type from last byte | property value | RiskyKen |
| Data Type | Name | Example | Note |
|---|---|---|---|
| ascii-string | skin part header | PART-START | |
| ascii-string | skin part registry name | armourers:legs.left | |
| int | skin cubes count | 500 | |
| for each skin cube | |||
| byte | cube id | 0 | see cube types |
| byte | x | 0 | x position relative to part origin |
| byte | y | 0 | y position relative to part origin |
| byte | z | 0 | z position relative to part origin |
| for each cube side | cubes have 6 sides! 😮 | ||
| byte | red | 0 | |
| byte | green | 0 | |
| byte | blue | 0 | |
| byte | paint type | 0 | see paint types |
| int | marker count | 1 | |
| for each marker | |||
| byte | x | 0 | |
| byte | y | 0 | |
| byte | z | 0 | |
| byte | face | 0 | |
| ascii-string | skin part footer | PART-END |