Subsistema de conteúdo ( editor de conteúdo e ct.content)
Subsistema de conteúdo ( editor de conteúdo e ct.content)
O subsistema de conteúdo é um conjunto de procedimentos de edição e exportação que permite que você projete, crie, e use estrutura de dados em seu jogo. Você pode pensar nele como um banco de dados local para o seu projeto, podendo ser usado para projetar, por exemplo, loot drops, níveis e ondas em um jogo tower defence, missões ou diálogos em um RPG, e outras coisas que sejam estruturadas em forma de tabelas.
Subsistema de conteúdo pode armazenar valores simples como números, strings, valores booleanos, e também, referências para os seus assets, como templates e rooms.
Em sua essência, o Subsistema de conteúdo consiste de:
- Editor de tipo de conteúdo que que permite que você projete a sua estrutura de dados;
- O editor de entrada do tipo de conteúdo permite que você crie e altere o seu conteúdo em uma estrutura semelhante a de tabelas;
- Os dados exportados estão disponíveis sob o
ct.content
namespace.
Planejando os dados
Você pode criar novos tipos de conteúdo na aba Project -> Content type editor.
Cada tipo de conteúdo tem esses campos:
- O nome do tipo de conteúdo. Esse é o nome da propriedade que você usará em seu código JS, então pense bem e escreva um nome simples sem espaços. Por exemplo, se você chamar o tipo de conteúdo de
Quests
, então você será capaz de acessá-lo em seu jogo comct.content.Quests
. - O nome legível. Se o nome principal não é muito legível, como
BuffsNCurses
, você pode escrever um nome diferente que será exibido na GUI do ct.IDE. Ele não tem nenhum efeito no código que você escreve. - Um ícone que é exibido na UI do ct.IDE.
- O esquema de contéudo. Essa é uma lista de todos os campos que cada entrada em seu tipo de conteúdo possui.
O esquema de conteúdo é descrito com uma tebela. cada linha será um campo em um objeto. Semelhante aos tipos de conteúdo, campos também têm um nome regular e um outro legível. Se você chama o seu campo de title
, então você será capaz de acessar o título da primeira entrada em seu tipo de conteúdo com ct.content.Quests[0].title
.
Além de um nome, cada campo tem um tipo. Campos podem ter valores simples como strings, números, e valores booleanos, mas eles também podem se referir aos assets em seu projeto: como texturas, templates, sons, emissor de partículas, e rooms. No código, essas referências se tornarão strings — os nomes de seus assets.
Existe também, duas caixas de seleção para cada campo: "Required" e "Array".
- Required campos que precisam ser preenchidos, ou eles mostrarão um alerta na UI do ct.IDE.
- Se Array estiver ativado, haverá um editor de lista em cada entrada, permitindo que você adicione um número arbitrário de valores.
Aqui está umm exemplo de um tipo de conteúdo "Gear":
Editando os dados
Editar é simples — uma vez que você tenha planejado os seus dados, você pode começar a criar entradas para o seu tipo de conteúdo. Para cada tipo de conteúdo que você cria, haverá uma nova seção na aba Project, no painel lateral a esquerda, embaixo das definições de módulos.
Crie entradas com o botão "Add a row", e preencha a tabela. Note que você pode remover ou adicionar campos caso você precise alterar o esquema, mas note também, que remover os campos a partir do esquema de conteúdo é irreversível.
Usando os dados
A forma mais simples de explorar o resultado da sua estrutura de dados é escrever ct.content.TypeName
no console de depuração e expandir os campos:
Você é livre para usar os dados que você quiser — tudo é apresentado como objetos dentro de array. Se você não sabe como manipular objetos e arrays, leia o nosso terceiro capítulo de introdução ao JS. Provavelmente você também vai precisar ler sobre loops aqui.