buldthensnip/docs/format_icemap.txt

77 lines
1.8 KiB
Plaintext

basically, an extensible tagged format.
note:
db means a byte
dw means a word (2 bytes here)
dd means a dword (4 bytes here)
for starters, there's a header,
just in case some clutz decides to use this in AoS
db "IceMap", 0x1A, 0x01
then a bunch of chunks follow in the format
db "7 Chars", length
or, if the length is >= 255:
db "7 Chars", 255
dd length
the terminator is:
db " ", 0
yes, that's 7 spaces.
for AoS compatibility, the "header" CAN be at the end, BUT:
- MapData is NOT to be defined.
- all non-air blocks are assumed to be type 1.
- the map MUST be 512x64x512.
now, here are the defined chunks as per version 1 of the format.
MapData:
db "MapData", 255
dd map_length
dw len_x, len_y, len_z
; map data goes here
this contains the map itself.
must appear exactly ONCE,
or not at all if using AoS compat.
MetaInf:
db "MetaInf", length
db field_name, 0
db field_data, 0
this contains meta info pertaining to the map.
yes, there can be more than one MetaInf with the same name.
defined names are:
"*Name": name of this map
"*Author": who made this map
"*Tool": program responsible for making this map
any custom names MUST NOT be prefixed with a *;
this is reserved for OFFICIALLY DEFINED NAMES ONLY.
all tools MUST leave "*Tool" fields intact.
this field can appear many times.
NOTE: THIS IS CURRENTLY NOT SUPPORTED AND SIMPLY IGNORED
BY THE ENGINE. But please include these if you can.
MapEnts:
db "MapEnts", length
; entity data goes here
this contains information regarding entities on the map.
entity data is a JSON blob.
entities include things like spawn points, pickup locations, etc.
see format_icemap_mapents.txt for JSON format and known entity types
must appear no more than once.