mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-14 15:46:06 +09:00
adding title menu element for mod options
This commit is contained in:
92
work_files/DataFormats/Worldmap format.txt
Normal file
92
work_files/DataFormats/Worldmap format.txt
Normal file
@@ -0,0 +1,92 @@
|
||||
Terrarum Game Map Format
|
||||
|
||||
* Endianness: LITTLE
|
||||
|
||||
Ord Hex Description
|
||||
00 54 T
|
||||
01 45 E
|
||||
02 4D M
|
||||
03 7A z # 'z' because it's compressed
|
||||
|
||||
04 03 Version revision number of this format (unreleased numbers also count)
|
||||
|
||||
05 03 Number of layers, NOT the number of payload
|
||||
|
||||
06 05 Number of payloads
|
||||
|
||||
07 01 Compression algorithm, 0 for none, 1 for DEFLATE, 2 for LZMA, otherwise undefined (maybe LZMA2 for the future?)
|
||||
Value of 01 (DEFLATE) is recommended for its faster compression
|
||||
|
||||
08 World generator version. If the generator adds new feature (e.g. new ores, new buildings)
|
||||
09 this number must be incremented by one.
|
||||
|
||||
0A World width
|
||||
0B World width
|
||||
0C World width
|
||||
0D World width
|
||||
|
||||
0E World height
|
||||
0F World height
|
||||
10 World height
|
||||
11 World height
|
||||
|
||||
12 Default spawn coord in Absolute Tile Number
|
||||
13 Default spawn coord in Absolute Tile Number
|
||||
14 Default spawn coord in Absolute Tile Number
|
||||
15 Default spawn coord in Absolute Tile Number
|
||||
16 Default spawn coord in Absolute Tile Number
|
||||
17 Default spawn coord in Absolute Tile Number
|
||||
|
||||
# Payload
|
||||
#
|
||||
# Each layer and other information are stored as a "payload"
|
||||
# A payload is consisted as follows:
|
||||
#
|
||||
# Literal Description
|
||||
# "\0pLd" Payload header [00, 70, 4C, 64]
|
||||
# [4] Identifier. 4 lettres ASCII string
|
||||
# [6] Uncompressed size of DEFLATEd binary (max size 256 TB)
|
||||
# [..] DEFLATEd binary (begins with one of these: 0x789C, 0x78DA, 0x7801)
|
||||
# "EndPYLd\xFF" Payload footer [45, 6E, 64, 50, 59, 4C, 64, FF]
|
||||
|
||||
|
||||
Payload "TERR" -- world terrain data in Uint16
|
||||
Uncompressed size will be 2x of (width * height)
|
||||
|
||||
Payload "WALL" -- world walls data in Unit16
|
||||
Uncompressed size will be 2x of (width * height)
|
||||
|
||||
Payload "TdMG" -- world terrain damage data, array of: (Int48 tileAddress, Float32 damage)
|
||||
Uncompressed size will be arbitrary (multiple of tens)
|
||||
|
||||
Payload "WdMG" -- world walls damage data, array of: (Int48 tileAddress, Float32 damage)
|
||||
Uncompressed size will be arbitrary (multiple of tens)
|
||||
|
||||
Payload "FlTP" -- world fluid types, array of: (Int48 tileAddress, Signed Int16 type)
|
||||
Uncompressed size will be arbitrary (multiple of eights)
|
||||
|
||||
Payload "FlFL" -- world fluid fills, array of: (Int48 tileAddress, Float32 amount)
|
||||
Uncompressed size will be arbitrary (multiple of tens)
|
||||
If the 'amount' < 0.0001f (WorldSimulator.FLUID_MIN_MASS), the entry must be discarded
|
||||
|
||||
Payload "WiNt" -- wiring nodes, in JSON format
|
||||
|
||||
Payload "CtYP" -- conduit types, array of: (Int48 tileAddress, Uint32 bitarray)
|
||||
can hold 32 different wires simultaneously
|
||||
|
||||
Payload "CfL0" -- conduit fills, aka size of liquid/gas packet, array of: (Int48 tileAddress, Float32 fill)
|
||||
CfL0..CfL9, CfLa..CfLf are available to store values for 16 different things.
|
||||
|
||||
EOF 45 E
|
||||
EOF 6E n
|
||||
EOF 64 d
|
||||
EOF 54 T
|
||||
EOF 45 E
|
||||
EOF 4D M
|
||||
EOF FF Byte order mark
|
||||
EOF FE Byte order mark
|
||||
|
||||
|
||||
* To read layers: you'll need to search for specific strings, namely ["TERR", "WALL", "WIRE"]
|
||||
* It is possible that compressed data happen to replicate any of the internal identifiers
|
||||
(e.g. "\0pLdTERR", "EndTEM\xFF\xFE", "EndPYLd\xFF"), but such probability is very low (0.000000000000000005421 %)
|
||||
Reference in New Issue
Block a user