Skip to content

Instantly share code, notes, and snippets.

@daeken
Created January 12, 2022 04:54
Show Gist options
  • Save daeken/0655822d050fa86d643888d7ae382d3e to your computer and use it in GitHub Desktop.
Save daeken/0655822d050fa86d643888d7ae382d3e to your computer and use it in GitHub Desktop.
---
- interface:
name: hypercosm.object.v1.0.0
methods:
- listInterfaces:
- array[string]
- release
- interface:
name: hypercosm.root.v0.1.0
methods:
- listExtensions:
- array[string]
- ping
- getObjectById:
- object
- uuid: id
- getObjectByName:
- object
- string: name
- extension:
- name: hypercosm.assetdelivery.v0.1.0
- interface: # Implicit name; matches extension and visible from root object
events: # Events can come after methods in the YAML but always first for command numbering
- loadAssets:
- void
- array[asset]: asset
- unloadAssets:
- void
- array[uuid]: ids
methods:
- fetchAssetById:
- asset
- uuid: id
- fetchAssetByName:
- asset
- string: name
- fetchAssetsByIds:
- array[asset]
- array[uuid]: ids
- fetchAssetsByNames:
- array[asset]
- array[string]: names
- getId:
- uuid
- string: name
- struct:
- name: asset # First element of a struct is always the name
- uuid: id
- string: name
- array[u8]: data
- extension:
- name: hypercosm.world.v0.1.0
- interface:
events:
- addEntities:
- void
- array[entityInfo]: entities
- updateEntities:
- void
- array[entityInfo]: entities
- removeEntities:
- void
- array[entity]: entities
- struct:
- name: entityInfo
- uuid: assetId # glTF
- entity: entity
- matrix4x4: transformation
- entityFlags: flags
- interface:
name: entity
methods:
- interact
- flags:
- name: entityFlags
- type: vu128
- None: 0
- Interactable
- Collidable
- enum: # Alternate form
- name: entityFlags
- type: vu128
- None: 0
- Interactable: 1
- Collidable: 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment