Conversation
ada-tv
left a comment
There was a problem hiding this comment.
I know this is WIP, just some tips
In JSDoc, number, boolean, and string are lowercase. Capitalised Number, Boolean, and String are different types that are very rarely used. Object and Array<T> are capitalised.
| dimensions: [0.5, 0.5, 0.2], | ||
| dynamic: true, | ||
| collisionless: false, | ||
| userData: "{ \"grabbableKey\": { \"grabbable\": true, \"kinematic\": false } }", |
There was a problem hiding this comment.
userData.grabbableKey is obsolete. There's a dedicated property for grab data.
| userData: "{ \"grabbableKey\": { \"grabbable\": true, \"kinematic\": false } }", | |
| grab: { grabbable: true, kinematic: false }, |
| /** | ||
| * @typedef {object} GraphJson-Node | ||
| * @property {string} type | ||
| * @property {object} data | ||
| */ | ||
|
|
||
| /** | ||
| * @typedef {object} GraphJson-Connection | ||
| * @property {GraphJson-Connection-Point} in | ||
| * @property {GraphJson-Connection-Point} out | ||
| */ | ||
|
|
||
| /** | ||
| * @typedef {object} GraphJson-Connection-Point | ||
| * @property {number} node | ||
| * @property {number} port | ||
| */ | ||
|
|
||
| /** | ||
| * @typedef {json} GraphJson | ||
| * @property {array<GraphJson-Node>} nodes | ||
| * @property {array<GraphJson-Connection>} connections | ||
| */ | ||
|
|
||
| /** | ||
| * @typedef {object} GraphJson-Assertion | ||
| * @property {Number} nodeId - The id of the node this assertion is about | ||
| * @property {Number} portId - The id of the output port this assertion is about | ||
| * @property {*} value - The value of the specified node's output port after exection | ||
| */ |
There was a problem hiding this comment.
JSDoc typedef names should generally be valid JS identifiers. Since these types are static "children" of GraphJson, the separators here should be . i.e. GraphJson.Assertion and GraphJson.Connection.Point.
There was a problem hiding this comment.
Here I followed the JSDoc docs example, or I tried to. Now I see it uses a ~ rather than a - in the typedef name.
* libtactile is a generic module for creating UIs in Overte * Tactile documents can be rendered in world as 3d entities * Tactile architecturally supports creating other types of renderers, for example rendering to a flat plane canvas entity or rendering to export as an image * InciteRezzer and GraphRez connect Incite graphs to Tactile rendering * Removes older InciteRenderer * tests for checking execution of incite graphs
Co-authored-by: Ada <ada+github@thingvellir.net>
zedwick
left a comment
There was a problem hiding this comment.
Thanks for the tips, Ada.
| /** | ||
| * @typedef {object} GraphJson-Node | ||
| * @property {string} type | ||
| * @property {object} data | ||
| */ | ||
|
|
||
| /** | ||
| * @typedef {object} GraphJson-Connection | ||
| * @property {GraphJson-Connection-Point} in | ||
| * @property {GraphJson-Connection-Point} out | ||
| */ | ||
|
|
||
| /** | ||
| * @typedef {object} GraphJson-Connection-Point | ||
| * @property {number} node | ||
| * @property {number} port | ||
| */ | ||
|
|
||
| /** | ||
| * @typedef {json} GraphJson | ||
| * @property {array<GraphJson-Node>} nodes | ||
| * @property {array<GraphJson-Connection>} connections | ||
| */ | ||
|
|
||
| /** | ||
| * @typedef {object} GraphJson-Assertion | ||
| * @property {Number} nodeId - The id of the node this assertion is about | ||
| * @property {Number} portId - The id of the output port this assertion is about | ||
| * @property {*} value - The value of the specified node's output port after exection | ||
| */ |
There was a problem hiding this comment.
Here I followed the JSDoc docs example, or I tried to. Now I see it uses a ~ rather than a - in the typedef name.
… Incite. * Improve cleanup when deleting a graph * Fixed ReferenceError regression when starting incite
* Fix element positioning * Tactile: Add TextElement element type
…during layout, use absolute coordinates in TactileRenderer
* Fix elements with no good candidate positions being rendered perfectly over the first element * Use element width/height when calculating overlap
…nts; Incite nodes got styled
* Tactile: Adjust default alpha/zDepth values. * Tactile: Add new GridElement * Layouts and TactileDocuments are now invisible by default
* Make a connection by clicking on the output port of one and then the input port of another. * Add ColumnLayout, GridElement, LineElement, RowLayout, TactileStore, TactileDocumentManager
Incite is the new virtual scripting language for Overte!
The aim of this project is to make it possible to build scripts from within Overte, in desktop or VR, which work in the client and on the domain server, either standalone or attached to entities.
You can create a graph and populate it with nodes, and when connected together they form a script.
This PR contains three projects in one:
Current status:
Whilst this is still a work in progress, most of the core features of visual scripting are now in place. It still needs a lot of iterating, fine tuning, and expansion.
Future work: