Horus Eye/Documentação
Script Builder
O script deve possuir uma função chamada "generate", que recebe um número variável de strings como argumentos e devolve um descritor de WorldObject. Para cada campo descrito na lista abaixo, se ele estiver presente, será usado para gerar alguma parte do WorldObject.
Se, além disso, o script tiver uma função "build", que deve receber um WorldObject como único argumento e não devolve nada, ela também será usada para terminar de construir o WorldObject, porém sem o auxílio de um descritor. Isso significa que certas funcionalidades (como callbacks e o componente Logic) não estarão à disposição no contexto da função "build", apenas da "generate".
Descritor de WorldObject
| Campo | Tipo | Obrigatório | Descrição | 
|---|---|---|---|
| drawable | Drawable* | Não | Define o drawable do node do objeto | 
| timed_life | double | Não | Define o tempo de vida do objeto, em segundos | 
| on_die_callback | void (WorldObject*) | Não | Função chamada quando o objeto morre. Primeiro argumento é o próprio objeto. | 
| light_radius | double | Não | Define o raio da luz do objeto, em unidades de Horus | 
| collision | Descritor de CollisionObject | Não | Define o CollisionObject do objeto. | 
Descritor de CollisionObject
| Campo | Tipo | Obrigatório | Descrição | 
|---|---|---|---|
| class | string | Sim | Define a classe de colisão | 
| shape | GeometricShape* | Sim | Define o shape | 
| known_collision | map<string, void (WorldObject*, WorldObject*) > | Não | Cada elemento do map define uma das colisões conhecidas por esse objeto. A chave é o nome da classe e o segundo é uma função que será chamada quando a colisão acontecer.
 O primeiro argumento da função é o WorldObject atual (self) e o segundo é o objeto com o qual colidiu.  |