games.cavu.entityClass

pardy.at

Documentation

An entity class to share between games: a Lua script returning the class table (handlers, project, view, synced, ...), run sandboxed by the Cavu entity engine. A game lists it in its manifest under `classes` by the name it gives it ("walker": "at://did/games.cavu.entityClass/rkey"), and its own classes may extend it by that name.

main record

An entity class to share between games: a Lua script returning the class table (handlers, project, view, synced, ...), run sandboxed by the Cavu entity engine. A game lists it in its manifest under `classes` by the name it gives it ("walker": "at://did/games.cavu.entityClass/rkey"), and its own classes may extend it by that name.

Record Key any Any valid record key

Properties

createdAt string datetime Required

An RFC 3339 formatted timestamp.

description string Optional

No description available.

maxLength: 3000 bytesmaxGraphemes: 300 graphemes
extends string Optional

The class name it extends, if any (resolved in the game that loads it).

maxLength: 64 bytes
fields unknown Optional

Optional: the fields its entities carry, documented (name -> description), for authoring tools.

license string Optional

No description available.

maxLength: 128 bytes
name string Required

A suggested name (games choose their own).

maxLength: 64 bytes
script string Required

Lua source returning the class table. It sees the standard libraries, spairs, path_at, update, copy_list, ent.is_a / lookup / kind / raw and (client) ui, sprites, motion; nothing else.

maxLength: 200000 bytes
View raw schema
{
  "description": "An entity class to share between games: a Lua script returning the class table (handlers, project, view, synced, ...), run sandboxed by the Cavu entity engine. A game lists it in its manifest under `classes` by the name it gives it (\"walker\": \"at://did/games.cavu.entityClass/rkey\"), and its own classes may extend it by that name.",
  "key": "any",
  "record": {
    "properties": {
      "createdAt": {
        "format": "datetime",
        "type": "string"
      },
      "description": {
        "maxGraphemes": 300,
        "maxLength": 3000,
        "type": "string"
      },
      "extends": {
        "description": "The class name it extends, if any (resolved in the game that loads it).",
        "maxLength": 64,
        "type": "string"
      },
      "fields": {
        "description": "Optional: the fields its entities carry, documented (name -> description), for authoring tools.",
        "type": "unknown"
      },
      "license": {
        "maxLength": 128,
        "type": "string"
      },
      "name": {
        "description": "A suggested name (games choose their own).",
        "maxLength": 64,
        "type": "string"
      },
      "script": {
        "description": "Lua source returning the class table. It sees the standard libraries, spairs, path_at, update, copy_list, ent.is_a / lookup / kind / raw and (client) ui, sprites, motion; nothing else.",
        "maxLength": 200000,
        "type": "string"
      }
    },
    "required": [
      "name",
      "script",
      "createdAt"
    ],
    "type": "object"
  },
  "type": "record"
}

Lexicon Garden

@