reduced shader bind code dupe & adjust skate uprighter strenght
[carveJwlIkooP6JGAAIwe30JlM.git] / web / frag / workshop_entities.html
1 <div class="subcontent">
2 <h1><center>World Entities</center></h1>
3
4 <h2>Gate</h2><pre>#1: ent_gate [<b>MESH</b>]</pre>
5 <table style="width:100%">
6 <tr>
7 <th>Field</th>
8 <th>Type</th>
9 <th>Range</th>
10 </tr>
11 <tr>
12 <td>Subtype</td>
13 <td>enum</td>
14 <td>Default - <i>World portal</i><br>
15 Non-Local - <i>Connect between different worlds</i></td>
16 </tr>
17 <tr>
18 <td>Destination</td>
19 <td>entity_target <b>or</b> string</td>
20 <td>target portal <b>or</b>
21 two portals (in different worlds) with the same string</td>
22 </tr>
23 </table>
24
25 <div class="subcontent">
26 <h2>Spawn Point</h2><pre>#2: ent_spawn [<b>MESH</b>, <b>EMPTY</b>]</pre></div>
27 <table style="width:100%">
28 <tr>
29 <th>Field</th>
30 <th>Type</th>
31 <th>Range</th>
32 </tr>
33 <tr>
34 <td>Alias</td>
35 <td>string</td>
36 <td><b>start</b> for spawn priority, empty, <b>or</b> any string to be used
37 with the command: <pre>respawn &lt;string&gt;</pre></td>
38 </tr>
39 </table>
40
41 <div class="subcontent">
42 <h2>Routing Path</h2><pre>#3: ent_route_node [<b>CURVE</b>]</pre></div>
43 <pre>
44 <b>NOTE:</b>You should use an order 3 path type. Any amount of subcurves are
45 allowed. The endpoints of the curves are the connecting points between other
46 pathing elements.</pre>
47 <table style="width:100%">
48 <tr>
49 <th>Field</th>
50 <th>Type</th>
51 <th>Range</th>
52 </tr>
53 <tr>
54 <td>Alias</td>
55 <td>string</td>
56 <td><b>start</b> for spawn priority, empty, <b>or</b> any string to be used
57 with the command: <pre>respawn &lt;string&gt;</pre></td>
58 </tr>
59 </table>
60
61 <div class="subcontent">
62 <h2>Skate Course</h2><pre>#4: ent_route [<b>EMPTY</b>]</pre></div>
63 <table style="width:100%">
64 <tr>
65 <th>Field</th>
66 <th>Type</th>
67 <th>Range</th>
68 </tr>
69 <tr>
70 <td>Colour</td>
71 <td>rgba32F</td>
72 <td>determines the routing line colour</td>
73 </tr>
74 <tr>
75 <td>Checkpoints</td>
76 <td>array[ MESH:<b>ent_gate</b> ]</td>
77 <td>List of <b>entry</b> gates that form the track<br>Must all be in one
78 Blender collection.</td>
79 </tr>
80 </table>
81
82 <div class="subcontent">
83 <h2>Water Surface</h2><pre>#5: ent_water [<b>EMPTY</b>, <b>MESH</b>]</pre></div>
84 <pre>One per level. Used to determine the reflection plane.</pre></div>
85
86 <div class="subcontent">
87 <h2>Volume/Trigger</h2><pre>#6: ent_volume [<b>EMPTY</b>]</pre>
88 <table style="width:100%">
89 <tr>
90 <th>Field</th>
91 <th>Type</th>
92 <th>Range</th>
93 </tr>
94 <tr>
95 <td>Subtype</td>
96 <td>Enum</td>
97 <td>Trigger - <i>Player Trigger</i><br>
98 Particles (0.1s) - <i>Spawn particle randomly every 0.1s</i></td>
99 </tr>
100 <tr>
101 <td>Target</td>
102 <td>MESH,EMPTY:any</td>
103 <td>Entity to call the trigger function for.</td>
104 </tr>
105 </table>
106
107 <div class="subcontent">
108 <h2>Audio</h2><pre>#7: ent_audio [<b>EMPTY</b>,<b>MESH</b>]</pre></div>
109 <table style="width:100%">
110 <tr>
111 <th>Field</th>
112 <th>Type</th>
113 <th>Range</th>
114 </tr>
115 <tr>
116 <td>Format</td>
117 <td>Enum</td>
118 <td>Uncompressed Mono - <i>Store compressed on disk, uncompressed in memory
119 </i><br>
120 Compressed Vorbis - <i>Always compressed, stereo signal</i><br>
121 [vg] Bird Synthesis - <i>Government spy drones (WIP)</i>
122 </td>
123 </tr>
124 <tr>
125 <td>Volume</td>
126 <td>f32</td>
127 <td>volume to play audio</td>
128 </tr>
129 </table>
130 <br><center><b>Channels</b></center><br>
131 <table style="width:100%">
132 <tr>
133 <th>Field</th>
134 <th>Type</th>
135 <th>Range</th>
136 </tr>
137 <tr>
138 <td>Max Channels</td>
139 <td>u32</td>
140 <td>Specifies the limit of instances of this audio player</td>
141 </tr>
142 <tr>
143 <td>Behaviour</td>
144 <td>Enum</td>
145 <td>Unlimited - <i>Create as many instances as possible up until the engine
146 limit (64)</i><br>
147 Discard if group full - <i>Doesnt play when triggered, if at limit
148 </i><br>
149 Crossfade if group full - <i>Pick an active sound from same group to
150 fade with. Temporarily creates an extra channel while fading</i>
151 </td>
152 </tr>
153 <tr>
154 <td>Group ID</td>
155 <td>u16</td>
156 <td>0-25565 (<b>Don't use values: 1 or 26</b>)</td>
157 </tr>
158 <tr>
159 <td>Transition Time</td>
160 <td>f32</td>
161 <td>If a crossfade is used, this is the duration</td>
162 </tr>
163 </table>
164 <br><center><b>Flags</b></center><br>
165 <table style="width:100%">
166 <tr>
167 <th>Field</th>
168 <th>Type</th>
169 <th>Range</th>
170 </tr>
171 <tr>
172 <td>3D Audio</td>
173 <td>bool</td>
174 <td>Play with spacialization, or 2D? Falloff distance is the scale of the
175 object in blender. Yellow rings signify 100% falloff.</td>
176 </tr>
177 <tr>
178 <td>No Doppler</td>
179 <td>bool</td>
180 <td>Disable doppler effect for this instance</td>
181 </tr>
182 <tr>
183 <td>Loop</td>
184 <td>bool</td>
185 <td>Go back to the start of the sound file instead of being killed</td>
186 </tr>
187 <tr>
188 <td>Play at start</td>
189 <td>bool</td>
190 <td>Begin playing automatically at world load</td>
191 </tr>
192 <tr>
193 <td>Probability Curve</td>
194 <td>enum</td>
195 <td>Constant - <i>No effect</i><br>
196 Wildlife Day - <i>Most chance to run during the day, and sunset/rise</i><br>
197 Wildlife Night - <i>Most chance to run during the night</i>
198 </td>
199 </tr>
200 </table>
201 <br><center><b>Filepaths</b></center><br>
202 <table style="width:100%">
203 <tr>
204 <th>Formats</th>
205 <th>Accepted</th>
206 </tr>
207 <tr>
208 <td>Uncompressed, Compressed Stereo</td>
209 <td>path: <i>sound/&lt;filename&gt;<b>.ogg</b><br>
210 44100hz, ogg Vorbis only.</i></td>
211 </tr>
212 <tr>
213 <td>[vg] Bird Synth</td>
214 <td>Binary string. Undocumented.</td>
215 </tr>
216 </table>
217
218 <div class="subcontent">
219 <h2>Marker</h2><pre>#8: ent_marker [<b>EMPTY</b>,<b>MESH</b>]</pre>
220 <table style="width:100%">
221 <tr>
222 <th>Field</th>
223 <th>Type</th>
224 <th>Range</th>
225 </tr>
226 <tr>
227 <td>Alias</td>
228 <td>string</td>
229 <td>any value</td>
230 </tr>
231 </table>
232
233 <div class="subcontent">
234 <h2>Traffic Model</h2><pre>#11: ent_traffic [<b>MESH</b>]</pre></div>
235 <pre>Follows the nearest <i>ent_route_node</i> cyclically</pre>
236 <table style="width:100%">
237 <tr>
238 <th>Field</th>
239 <th>Type</th>
240 <th>Range</th>
241 </tr>
242 <tr>
243 <td>speed</td>
244 <td>f32</td>
245 <td>&gt;0.0f</td>
246 </tr>
247 </table>
248
249 <div class="subcontent">
250 <h2>Skateshop</h2><pre>#12: ent_skateshop [<b>EMPTY</b>]</pre></div>
251 <pre>Undocumented.</pre>
252
253 <div class="subcontent">
254 <h2>Camera</h2><pre>#13: ent_camera <b>&lt;INTRINSIC[ CAMERA ]&gt;</b></pre>
255 </div>
256 <pre>Blender camera</pre>
257
258 <div class="subcontent">
259 <h2>Workshop Preview</h2><pre>#14: ent_swspreview [<b>EMPTY</b>]</pre></div>
260 <pre>One per map</pre>
261 <table style="width:100%">
262 <tr>
263 <th>Field</th>
264 <th>Type</th>
265 <th>Range</th>
266 </tr>
267 <tr>
268 <td>Board Display</td>
269 <td>EMPTY:<b>ent_marker</b></td>
270 <td>Where to render board</td>
271 </tr>
272 <tr>
273 <td>Board Display (other side)</td>
274 <td>EMPTY:<b>ent_marker</b></td>
275 <td>Where to render board, but upside-down</td>
276 </tr>
277 <tr>
278 <td>Viewpoint</td>
279 <td>CAMERA:<b>ent_camera</b></td>
280 <td>Camera which can see both preview locations</td>
281 </tr>
282 </table>
283
284 <div class="subcontent">
285 <h2>World Info</h2><pre>#16: ent_worldinfo [<b>EMPTY</b>]</pre></div>
286 <pre>One per map</pre>
287 <table style="width:100%">
288 <tr>
289 <th>Field</th>
290 <th>Type</th>
291 <th>Range</th>
292 </tr>
293 <tr>
294 <td>Name (unused)</td>
295 <td>string</td>
296 <td></td>
297 </tr>
298 <tr>
299 <td>Description (unused)</td>
300 <td>string</td>
301 <td></td>
302 </tr>
303 <tr>
304 <td>Author (unused)</td>
305 <td>string</td>
306 <td></td>
307 </tr>
308 <tr>
309 <td>Timezone (+hrs)</td>
310 <td>f32</td>
311 <td>relative to 0:00 UTC, time zone where this map is.</td>
312 </tr>
313 </table>
314
315 <div class="subcontent">
316 <h2>CCmd</h2><pre>#17: ent_ccmd [<b>EMPTY</b>]</pre></div>
317 <table style="width:100%">
318 <tr>
319 <th>Field</th>
320 <th>Type</th>
321 <th>Range</th>
322 </tr>
323 <tr>
324 <td>Command Line</td>
325 <td>string</td>
326 <td>string to give to the command processor to run when triggered</td>
327 </tr>
328 </table>
329
330 </div>