add world entities
authorhgn <hgodden00@gmail.com>
Wed, 12 Jul 2023 23:31:13 +0000 (00:31 +0100)
committerhgn <hgodden00@gmail.com>
Wed, 12 Jul 2023 23:31:13 +0000 (00:31 +0100)
web/frag/workshop_content.html
web/frag/workshop_entities.html [new file with mode: 0644]
web/index.php
web/serv.sh

index 363ec3d5eb9d2262823ba48e2d9c3e8190b0f961..f5368798484f4f17cd2cf778698a6a5fdaed0f79 100644 (file)
@@ -10,6 +10,6 @@
  <br>
  <h3>Info Pages</h3><br>
  <a href="index.php?page=addon">Skaterift Addon</a><br>
- <a href="index.php?page=wsentities">Blender Entities</a><br>
+ <a href="index.php?page=workshop_entities">Blender Entities</a><br>
  </p>
 </div>
diff --git a/web/frag/workshop_entities.html b/web/frag/workshop_entities.html
new file mode 100644 (file)
index 0000000..66751bc
--- /dev/null
@@ -0,0 +1,316 @@
+<div class="subcontent">
+ <h1>World Entities</h1>
+
+<br><h2>Gate</h2><pre>#1: ent_gate [<b>MESH</b>]</pre>
+<table style="width:100%">
+  <tr>
+    <th>Field</th>
+    <th>Type</th>
+    <th>Range</th>
+  </tr>
+  <tr>
+    <td>Subtype</td>
+    <td>enum</td>
+    <td>Default - <i>World portal</i><br>
+        Non-Local - <i>Connect between different worlds</i></td>
+  </tr>
+  <tr>
+    <td>Destination</td>
+    <td>entity_target <b>or</b> string</td>
+    <td>target portal <b>or</b> 
+       two portals (in different worlds) with the same string</td>
+  </tr>
+</table>
+
+<br><h2>Spawn Point</h2><pre>#2: ent_spawn [<b>MESH</b>, <b>EMPTY</b>]</pre>
+<table style="width:100%">
+  <tr>
+    <th>Field</th>
+    <th>Type</th>
+    <th>Range</th>
+  </tr>
+  <tr>
+    <td>Alias</td>
+    <td>string</td>
+    <td><b>start</b> for spawn priority, empty, <b>or</b> any string to be used
+       with the command: <pre>respawn &lt;string&gt;</pre></td>
+  </tr>
+</table>
+
+<br><h2>Routing Path</h2><pre>#3: ent_route_node [<b>CURVE</b>]</pre>
+<pre>
+<b>NOTE:</b>You should use an order 3 path type. Any amount of subcurves are
+allowed. The endpoints of the curves are the connecting points between other
+pathing elements.</pre>
+<table style="width:100%">
+  <tr>
+    <th>Field</th>
+    <th>Type</th>
+    <th>Range</th>
+  </tr>
+  <tr>
+    <td>Alias</td>
+    <td>string</td>
+    <td><b>start</b> for spawn priority, empty, <b>or</b> any string to be used
+       with the command: <pre>respawn &lt;string&gt;</pre></td>
+  </tr>
+</table>
+
+<br><h2>Skate Course</h2><pre>#4: ent_route [<b>EMPTY</b>]</pre>
+<table style="width:100%">
+  <tr>
+    <th>Field</th>
+    <th>Type</th>
+    <th>Range</th>
+  </tr>
+  <tr>
+    <td>Colour</td>
+    <td>rgba32F</td>
+    <td>determines the routing line colour</td>
+  </tr>
+  <tr>
+    <td>Checkpoints</td>
+    <td>array[ MESH:<b>ent_gate</b> ]</td>
+    <td>List of <b>entry</b> gates that form the track<br>Must all be in one
+Blender collection.</td>
+  </tr>
+</table>
+
+<br><h2>Water Surface</h2><pre>#5: ent_water [<b>EMPTY</b>, <b>MESH</b>]</pre>
+<pre>One per level. Used to determine the reflection plane.</pre>
+
+<br><h2>Volume/Trigger</h2><pre>#6: ent_volume [<b>EMPTY</b>]</pre>
+<table style="width:100%">
+  <tr>
+    <th>Field</th>
+    <th>Type</th>
+    <th>Range</th>
+  </tr>
+  <tr>
+    <td>Subtype</td>
+    <td>Enum</td>
+    <td>Trigger - <i>Player Trigger</i><br>
+        Particles (0.1s) - <i>Spawn particle randomly every 0.1s</i></td>
+  </tr>
+  <tr>
+    <td>Target</td>
+    <td>MESH,EMPTY:any</td>
+    <td>Entity to call the trigger function for.</td>
+  </tr>
+</table>
+
+<br><h2>Audio</h2><pre>#7: ent_audio [<b>EMPTY</b>,<b>MESH</b>]</pre>
+<table style="width:100%">
+  <tr>
+    <th>Field</th>
+    <th>Type</th>
+    <th>Range</th>
+  </tr>
+  <tr>
+    <td>Format</td>
+    <td>Enum</td>
+    <td>Uncompressed Mono - <i>Store compressed on disk, uncompressed in memory
+       </i><br>
+        Compressed Vorbis - <i>Always compressed, stereo signal</i><br>
+        [vg] Bird Synthesis - <i>Government spy drones (WIP)</i>
+    </td>
+  </tr>
+  <tr>
+    <td>Volume</td>
+    <td>f32</td>
+    <td>volume to play audio</td>
+  </tr>
+</table>
+<br><center><b>Channels</b></center><br>
+<table style="width:100%">
+  <tr>
+    <th>Field</th>
+    <th>Type</th>
+    <th>Range</th>
+  </tr>
+  <tr>
+    <td>Max Channels</td>
+    <td>u32</td>
+    <td>Specifies the limit of instances of this audio player</td>
+  </tr>
+  <tr>
+    <td>Behaviour</td>
+    <td>Enum</td>
+    <td>Unlimited - <i>Create as many instances as possible up until the engine
+         limit (64)</i><br>
+        Discard if group full - <i>Doesnt play when triggered, if at limit
+        </i><br>
+        Crossfade if group full - <i>Pick an active sound from same group to 
+        fade with. Temporarily creates an extra channel while fading</i>
+    </td>
+  </tr>
+  <tr>
+    <td>Group ID</td>
+    <td>u16</td>
+    <td>0-25565 (<b>Don't use values: 1 or 26</b>)</td>
+  </tr>
+  <tr>
+    <td>Transition Time</td>
+    <td>f32</td>
+    <td>If a crossfade is used, this is the duration</td>
+  </tr>
+</table>
+<br><center><b>Flags</b></center><br>
+<table style="width:100%">
+  <tr>
+    <th>Field</th>
+    <th>Type</th>
+    <th>Range</th>
+  </tr>
+  <tr>
+    <td>3D Audio</td>
+    <td>bool</td>
+    <td>Play with spacialization, or 2D? Falloff distance is the scale of the 
+    object in blender. Yellow rings signify 100% falloff.</td>
+  </tr>
+  <tr>
+    <td>No Doppler</td>
+    <td>bool</td>
+    <td>Disable doppler effect for this instance</td>
+  </tr>
+  <tr>
+    <td>Loop</td>
+    <td>bool</td>
+    <td>Go back to the start of the sound file instead of being killed</td>
+  </tr>
+  <tr>
+    <td>Play at start</td>
+    <td>bool</td>
+    <td>Begin playing automatically at world load</td>
+  </tr>
+  <tr>
+    <td>Probability Curve</td>
+    <td>enum</td>
+    <td>Constant - <i>No effect</i><br>
+    Wildlife Day - <i>Most chance to run during the day, and sunset/rise</i><br>
+    Wildlife Night - <i>Most chance to run during the night</i>
+    </td>
+  </tr>
+</table>
+<br><center><b>Filepaths</b></center><br>
+<table style="width:100%">
+  <tr>
+    <th>Formats</th>
+    <th>Accepted</th>
+  </tr>
+  <tr>
+    <td>Uncompressed, Compressed Stereo</td>
+    <td>path: <i>sound/&lt;filename&gt;<b>.ogg</b><br>
+          44100hz, ogg Vorbis only.</i></td>
+  </tr>
+  <tr>
+    <td>[vg] Bird Synth</td>
+    <td>Binary string. Undocumented.</td>
+  </tr>
+</table>
+
+<br><h2>Marker</h2><pre>#8: ent_marker [<b>EMPTY</b>,<b>MESH</b>]</pre>
+<table style="width:100%">
+  <tr>
+    <th>Field</th>
+    <th>Type</th>
+    <th>Range</th>
+  </tr>
+  <tr>
+    <td>Alias</td>
+    <td>string</td>
+    <td>any value</td>
+  </tr>
+</table>
+
+<br><h2>Traffic Model</h2><pre>#11: ent_traffic [<b>MESH</b>]</pre>
+<pre>Follows the nearest <i>ent_route_node</i> cyclically</pre>
+<table style="width:100%">
+  <tr>
+    <th>Field</th>
+    <th>Type</th>
+    <th>Range</th>
+  </tr>
+  <tr>
+    <td>speed</td>
+    <td>f32</td>
+    <td>&gt;0.0f</td>
+  </tr>
+</table>
+
+<br><h2>Skateshop</h2><pre>#12: ent_skateshop [<b>EMPTY</b>]</pre>
+<pre>Undocumented.</pre>
+
+<br><h2>Camera</h2><pre>#13: ent_camera <b>&lt;INTRINSIC[ CAMERA ]&gt;</b></pre>
+<pre>Blender camera</pre>
+
+<br><h2>Workshop Preview</h2><pre>#14: ent_swspreview [<b>EMPTY</b>]</pre>
+<pre>One per map</pre>
+<table style="width:100%">
+  <tr>
+    <th>Field</th>
+    <th>Type</th>
+    <th>Range</th>
+  </tr>
+  <tr>
+    <td>Board Display</td>
+    <td>EMPTY:<b>ent_marker</b></td>
+    <td>Where to render board</td>
+  </tr>
+  <tr>
+    <td>Board Display (other side)</td>
+    <td>EMPTY:<b>ent_marker</b></td>
+    <td>Where to render board, but upside-down</td>
+  </tr>
+  <tr>
+    <td>Viewpoint</td>
+    <td>CAMERA:<b>ent_camera</b></td>
+    <td>Camera which can see both preview locations</td>
+  </tr>
+</table>
+
+<br><h2>World Info</h2><pre>#16: ent_worldinfo [<b>EMPTY</b>]</pre>
+<pre>One per map</pre>
+<table style="width:100%">
+  <tr>
+    <th>Field</th>
+    <th>Type</th>
+    <th>Range</th>
+  </tr>
+  <tr>
+    <td>Name (unused)</td>
+    <td>string</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>Description (unused)</td>
+    <td>string</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>Author (unused)</td>
+    <td>string</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>Timezone (+hrs)</td>
+    <td>f32</td>
+    <td>relative to 0:00 UTC, time zone where this map is.</td>
+  </tr>
+</table>
+
+<br><h2>CCmd</h2><pre>#17: ent_ccmd [<b>EMPTY</b>]</pre>
+<table style="width:100%">
+  <tr>
+    <th>Field</th>
+    <th>Type</th>
+    <th>Range</th>
+  </tr>
+  <tr>
+    <td>Command Line</td>
+    <td>string</td>
+    <td>string to give to the command processor to run when triggered</td>
+  </tr>
+</table>
+
+</div>
index 24f37946c4e37fe809acef0592ff4cc8b00c2265..907e022f56ad8cccc4292c22c84cc4dbb8b1496f 100755 (executable)
    --k_ui_gray1:   #a89984;
   }
 
+  table, th, td {
+   border:1px solid var(--k_ui_bg3);
+  }
+
   body {
    font-family:      'Roboto Condensed', sans-serif;
    color:            var(--k_ui_fg4);
index a466ce875a5b0670640b25e428842bb2bc36df33..4e1c5becaa09715a06ca7d9fd3764f23c875b918 100755 (executable)
@@ -1 +1 @@
-php -S 127.0.0.1:8000 -t .
+php -S 127.0.0.1:27410 -t .