forked from pkhead/rained
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlevel-format-docs.txt
More file actions
138 lines (114 loc) · 3.75 KB
/
level-format-docs.txt
File metadata and controls
138 lines (114 loc) · 3.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
These are notes I wrote from documenting the RW level file format
========
NOTE: shortcut entrances always have an object of type 4. (dunno why, probably some leftovers from an older impl)
tile data format (from rwe+):
{"tp": "tileHead", "data": ["point(C, T)", "N"]}
C = Category ID (starting from 1) plus 2 (Stone = 3, Machinery = 15, Misc = 12)
T = Tile index starting from 1
N = tile name
{"tp": "tileBody", "data": ["PT", L]}
PT = location of the tile head plus (1, 1)
L = layer
{"tp": "material", "data": "N"}
N = material name
{"tp": "default": "data": 0}
FX MATRIX FORMAT
{
#nm: string
#tp: "nn" | "standardErosion" (don't really know what this means),
#crossScreen: 0 (idk what this means, but it is effect-specific),
#mtrx: (2d array with values ranging from 0 to 100)
#Options: [
[
section Header as string,
options as string array (no options = empty array),
selected value? (string, but a number is used for seed)
]
],
[if #tp == "standardErosion"] (
#repeats: number (idk what this does, but it is effect-specific)
#affectOpenAreas: number (idk what this does either, but it is effect-specific)
)
}
PROP INIT FORMAT
[
#nm: string
#tp: "standard" | "soft" | "variedStandard" | "simpleDecal" | "variedSoft" | "variedDecal" | "antimatter" | "coloredSoft"
#colorize?: integer
if tp == "standard" | "variedStandard" (
#colorTreatment: "standard" | "bevel"
if colorTreatment == "bevel" (
#bevel: integer
)
#sz: point
#repeatL: int[]
)
if tp == "variedStandard" (
#vars: integer
#random: integer
)
if tp == "variedSoft" | "variedDecal" (
#pxlSize: point
#vars: integer
#random: integer
)
if tp == "coloredSoft" (
#pxlSize: point
)
if tp == "soft" (
#depth: integer
#round: integer
#contourExp: float
#selfShade: integer
#highLightBorder: float
#depthAffectHilites: float
#shadowBorder: float
#smoothShading: integer
)
if tp == "simpleDecal" | tp == "variedDecal" (
#depth: integer
)
if tp == "antimatter" (
#depth: number
#contourExp: number
)
#tags: ("randomRotat" | "snapToGrid" | "Circular Sign" | "randomFlipX" | "randomFlipY")[]
#layerExceptions: []
#notes: string[]
]
PROP LEVEL FORMAT
(sorted from ascending to descending their sublayer origin (when positive))
PROPDATA: [
sublayer origin as negative integer
name as string
point(category#, tile#) (Cogs and Gears = 1)
array for quad corners, starting from top-left and continuing clockwise. 16 units = 1 cell
[
#settings: [
#renderorder: any integer
#seed: integer [0,1000]
#renderTime: 0 = PreEffects; 1 = PostEffects
#customDepth?: integer
#color?: integer index into colors list, 1-indexed
#variation?: integer, starting from 1
#applyColor?: 1 if true, 0 if false
#release?: (rope release mode) -1 = Left, 0 = None, 1 = Right
(fez tree)
#leafDensity: [0.0000 to 1.0000, in editor changes by increments of 0.05]
#effectColor: integer [0, 2]
],
#points: point[] (if rope-type prop)
#treeParameters: [
(for each coordinate, 20 units = 1 cell)
(rotation is expressed in degrees, clockwise, with up as origin)
#trunkPos: point
#trunkAngle: number
#leafPos: the point at the bottom of the prop
#leafSize: point(propStretchX * 80 * 0.6875, propStretchY * 80 * 0.84375)
#leafAngle: number
]
]
]
[
#props: PROPDATA[]
]