added most objects

This commit is contained in:
TJ
2026-06-11 14:45:36 +02:00
parent 71c21cf536
commit 17b3bd8ff8
9 changed files with 264 additions and 2 deletions
+37
View File
@@ -0,0 +1,37 @@
# GoToOtherRoom
### Type
pre-defined
### 3D
Unity: Pink 2x2 square in the floor, text hovering 1.5m above.
Text is always facing the user.
### Custom Args:
| Key | Type | Implemented | Description |
|---|---|---|---|
| RoomName | string | ❌ | Display label shown on the entrance |
| UUID | string | ❌ | UUID of the target room to teleport to |
| color | hexColor | ❌ | Tint color of the entrance mesh, default xrwise pink|
| grabable | `"true"` / `"false"` | ⚠️ (not in Unity yet) | Whether the item can be grabbed in-experience (common to all types) |
### Special Notes:
Only the Mesh still exists. Neither Unity nor Creatro implemented yet.
### Example:
```json
{
"position": { "x": 7.0, "y": 0.1, "z": -2.0 },
"rotation": { "x": 0.0, "y": 45.0, "z": 0.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 },
"type": "pre-defined",
"resourcename": "Entrance",
"item-custom-args": [
{ "argument": "RoomName", "value": "Demo Room Number 2" },
{ "argument": "UUID", "value": "a0a11a08-dc35-49e1-9808-1452b9d31be3" },
{ "argument": "color", "value": "#b4da55" }
],
"item-custom-args-adv": null
}
```
+44
View File
@@ -0,0 +1,44 @@
# LiveKitStream
### Type
pre-defined
### 3D
A video display surface that streams live video from a LiveKit room.
The LiveKitStream is a 4m x 2,25m opaque Plane.
Its Origin is at the Bottom-Center (if controls are disabled).
Spawnpoint should be {0,1,0} so its 1m above the floor.
### Custom Args:
| Key | Type | Implemented | Description |
|---|---|---|---|
| LiveKitRoomID | string | ✔️ | Name of the LiveKit room to connect to (e.g. `"Gas Station"`) |
| widthcrop | float | ❌| Horizontal crop |
| heightcrop | float | ❌| Vertical crop |
| shader | string | ✔️ | `"unlit"` / `"lit"` / `"greenscreen"` |
| GreenScreenColor | hexColor |✔️ | Greenscreen key color |
| GreenScreenBorderSettings | int(string) | ✔️ | Greenscreen border tolerance. 0 - 1000, default 640 |
| GreenScreenColorNear | float (string)| ✔️ | Greenscreen color proximity. 0-2, default 0.3 |
| grabable | `"true"` / `"false"` | ⚠️ | Whether the item can be grabbed in-experience (common to all types) |
### Special Notes:
The LiveKit token is fetched via `LiveKitURLProvider.getToken(roomName)`.
### Example:
```json
{
"position": { "x": 5.0, "y": 1.0, "z": -6.0 },
"rotation": { "x": 0.0, "y": 0.0, "z": 0.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 },
"type": "pre-defined",
"resourcename": "LiveKitStream",
"item-custom-args": [
{ "argument": "shader", "value": "unlit"},
{ "argument": "LiveKitRoomID", "value": "Demo Room" },
{ "argument": "widthcrop", "value": "1600" },
{ "argument": "heightcrop", "value": "900" }
],
"item-custom-args-adv": null
}
```
+35
View File
@@ -0,0 +1,35 @@
# Point Light
### Type
pre-defined
### 3D
No visible mesh. Represents an omnidirectional point light source that emits light equally in all directions.
Default spawn height is y=2.
### Custom Args:
| Key | Type | Implemented | Description |
|---|---|---|---|
| color | hexColor | ⚠️ (Creator tbd) | Color of the light |
| intensity | float | ⚠️ **See note below.** | Light intensity (default 1). |
| grabable | `"true"` / `"false"` | ⚠️ | Whether the item can be grabbed in-experience (common to all types) |
### Special Notes:
**Key name discrepancy:** The database save format uses `intensity` as the argument key, but `PointLightItemBehaviour.cs` reads `brightness`. Light intensity args may not apply at runtime unless this is resolved.
### Example:
```json
{
"position": { "x": 0.0, "y": 2.0, "z": 0.0 },
"rotation": { "x": 0.0, "y": 0.0, "z": 0.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 },
"type": "pre-defined",
"resourcename": "Point Light",
"item-custom-args": [
{ "argument": "color", "value": "#ff0000" },
{ "argument": "intensity", "value": "50" }
],
"item-custom-args-adv": null
}
```
+46
View File
@@ -0,0 +1,46 @@
# PresentationWall
A slideshow display surface. Loads a set of JPEG slides from Supabase storage and renders them in sequence.
❌ Currently not in Creator
### Type
pre-defined
### 3D
The PresentationWall is a 4m x 2,25m opaque Plane.
When "controls" is set to true it expands to 4m x 2,5m.
Its Origin is at the Bottom-Center (if controls are disabled).
Spawnpoint should be {0,1,0} so its 1m above the floor.
### Custom Args:
| Key | Type | Implemented | Description |
|---|---|---|---|
| file | string | ✔️ | UUID of the `Slide` record in the Supabase `slides` table. The runtime fetches `slides_count` and loads each `{storage_folder}/{i}.jpg` |
| widthcrop | float | ⚠️ no-op in Unity| Horizontal crop|
| heightcrop | float | ⚠️ no-op in Unity| Vertical crop|
|controls| bool | ❌ | If Controls are enabled at the bottom of the screen, currently always true|
| grabable | `"true"` / `"false"` | ⚠️ | Whether the item can be grabbed in-experience (common to all types) |
### Special Notes:
`file` is not a storage path — it is the `id` field of a `Slide` row in Supabase. The behaviour queries `supabase.From<Slide>().Where(s => s.id == value)` to find the slide folder and count.
Signed URLs are generated per slide (1-hour TTL) and loaded as `Texture2D`.
### Example:
```json
{
"position": { "x": 10.0, "y": 4.0, "z": -6.0 },
"rotation": { "x": 0.0, "y": 0.0, "z": 0.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 },
"type": "pre-defined",
"resourcename": "PresentationWall",
"item-custom-args": [
{ "argument": "file", "value": "b83a17ab-92bf-4122-a4d0-7b467a105ae0/converted/powerpoint1" },
{ "argument": "widthcrop", "value": "0" },
{ "argument": "heightcrop", "value": "0" }
],
"item-custom-args-adv": null
}
```
+34
View File
@@ -0,0 +1,34 @@
# Sphere
### Type
pre-defined
### 3D
The Sphere is a 1m diameter sphere (radius 0.5m).
Its Origin is in the Geometric Center.
Spawnpoint should be {0,0.5,0} so it rests on the floor.
### Custom Args:
| Key | Type | Implemented | Description |
|---|---|---|---|
| color | hexColor | ✔️ | Color of the sphere material |
| grabable | `"true"` / `"false"` | ⚠️ | Whether the item can be grabbed in-experience (common to all types) |
### Special Notes:
The Sphere has a collider and is a "Teleportation Area".
### Example:
```json
{
"position": { "x": 6.0, "y": 0.5, "z": 0.0 },
"rotation": { "x": 0.0, "y": 0.0, "z": 0.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 },
"type": "pre-defined",
"resourcename": "Sphere",
"item-custom-args": [
{ "argument": "color", "value": "#ff0000" }
],
"item-custom-args-adv": null
}
```
+1 -1
View File
@@ -26,7 +26,7 @@ The Creator handles Uploading of Videos, generating Meta-Quest compatible Videos
```json
{
"position": { "x": 0.0, "y": 1, "z": -6 },
"position": { "x": 0.0, "y": 1.0, "z": -6.0 },
"rotation": { "x": 0.0, "y": 0.0, "z": 0.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 },
"type": "pre-defined",
+34
View File
@@ -0,0 +1,34 @@
# Wall
### Type
pre-defined
### 3D
The Wall is a flat rectangular Cube with dimensions 10m × 5m × 0.1m.
Its Origin is at the Geometric Center.
Spawnpoint should be {0,2.5,0} (half height above floor).
### Custom Args:
| Key | Type | Implemented | Description |
|---|---|---|---|
| color | hexColor | ✔️ | Color of the wall material |
| opacity | float (01) | ⚠️ (not in Unity) | Transparency of the wall material |
| grabable | `"true"` / `"false"` | ⚠️ | Whether the item can be grabbed in-experience (common to all types) |
### Special Notes:
### Example:
```json
{
"position": { "x": 0.0, "y": 2.5, "z": -5.0 },
"rotation": { "x": 0.0, "y": 0.0, "z": 0.0 },
"scale": { "x": 1.0, "y": 2.0, "z": 1 },
"type": "pre-defined",
"resourcename": "Wall",
"item-custom-args": [
{ "argument": "color", "value": "#ffffff" }
],
"item-custom-args-adv": null
}
```
+32
View File
@@ -0,0 +1,32 @@
# WhiteboardWall
### Type
The VideoWall is a 1,8m x 0,9m opaque Plane.
Its Origin is at the Bottom-Center.
Spawnpoint should be {0,1,0} so its 1m above the floor.
### 3D
An interactive whiteboard surface that users can draw on collaboratively.
### Custom Args:
| Key | Type | Implemented | Description |
|---|---|---|---|
| grabable | `"true"` / `"false"` | ⚠️ | Whether the item can be grabbed in-experience (common to all types) |
### Special Notes:
**Not implemented in save.** The Whiteboard is not serialized to the database JSON by the Creator. It can be placed in the scene but its state will not persist between sessions.
### Example:
```json
{
"position": { "x": 14.0, "y": 1.0, "z": -6.0 },
"rotation": { "x": 0.0, "y": 0.0, "z": 0.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 },
"type": "pre-defined",
"resourcename": "WhiteboardWall",
"item-custom-args": [],
"item-custom-args-adv": null
}
```