Gerenciador de Componentes

Componentes

No Craftland Studio PC, um “componente” pode ser entendido como um recipiente para dados.
Uma entidade em si é apenas um identificador vazio; o que ela pode fazer e como se comporta depende inteiramente dos componentes que estão anexados a ela.

  • Componente de Movimento: Armazena apenas dados relacionados ao movimento, como velocidade e direção do movimento.
  • Componente de Renderização: Armazena dados necessários para a renderização, como modelos e materiais.
  • Componente de Colisão: Armazena dados para detecção de colisão, como volumes e formas de colisão.

O sistema localiza entidades que possuem combinações específicas de componentes e, em seguida, determina a lógica comportamental a ser aplicada a essas entidades com base nos dados contidos nesses componentes.

Gerenciamento de Componentes

Acesse o Gerenciamento de Componentes através do menu

image-20251125174607079

image-20251125174656617

Você também pode acessar a interface de gerenciamento de um componente diretamente a partir do próprio componente:

image-20251125174644533

image-20251125174720819

Scripts

Montar scripts em um componente é equivalente a montar scripts em todas as entidades que utilizam esse componente:

image-20251125175304300

image-20251125175249160

imagem-20251125175923212

Atributos

Atributos padrão

Por padrão, a maioria dos componentes já possui propriedades padrão.

image-20251201112745685

Tipos de propriedade

As propriedades são categorizadas como somente leitura ou graváveis. As propriedades somente leitura podem ser consultadas apenas para seus valores e não podem ser modificadas por meio de scripts; as propriedades graváveis podem ser alteradas por meio de scripts.

image-20251201112959371

Propriedades graváveis

image-20251201113027758

Propriedades somente leitura

A capacidade de gravação de um atributo também pode ser determinada pelo fato de sua entrada de propriedade padrão estar destacada.

image-20251201113138046

Por exemplo, a propriedade position do objeto player difere da propriedade position do componente transform usado por outros objetos; ela não pode ser modificada diretamente por meio da API setProperty. Para mover o player, deve-se utilizar a API teleportPlayer dedicada:

image-20251201113836975 image-20251201113913733

Utilize a API Set Property para modificar atributos graváveis; utilize a API Get Property para recuperar valores de propriedade:

image-20251201120211092

Além disso, certas propriedades padrão são exclusivas do servidor; tentar modificá-las no cliente resultará em um erro. Nos scripts de componentes, essas propriedades são filtradas automaticamente com base na plataforma de tempo de execução do script.

Propriedades personalizadas

Além das propriedades padrão disponíveis, você também pode adicionar propriedades personalizadas aos componentes. As propriedades personalizadas são graváveis e funcionam como propriedades de plataforma dupla.

image-20251201141535496

Detecção de propriedades personalizadas

Você deve ter notado um ícone de monitoramento ao lado das propriedades personalizadas:

image-20251201151540296

A ativação desse recurso de monitoramento faz com que o sistema envie um evento de “Alteração de propriedade personalizada” sempre que o valor da propriedade for alterado, seguindo esta lógica:

  1. Quando a propriedade é modificada por meio da lógica do lado do servidor, o evento é enviado tanto para o servidor quanto para o cliente.
  2. Quando a propriedade é modificada por meio da lógica do lado do cliente, o evento é enviado apenas localmente.

Esse evento de alteração de propriedade personalizada permite detectar alterações mais facilmente, possibilitando ajustes lógicos subsequentes:

image-20251201152041181

Se vários atributos personalizados tiverem a detecção de alterações ativada, o elemento de ID do atributo personalizado poderá identificar qual atributo específico foi alterado:

image-20251201155511248

Ao utilizar o primitivo de ID de propriedade personalizada, o tipo de componente deve ser especificado manualmente

Componentes associados

Um componente pode possuir vários componentes associados. A combinação, referências ou dependências entre componentes definem os limites lógicos e de capacidade de dados de uma entidade.

Por exemplo, o componente Player vincula-se aos componentes Combatable, Scoreable e outros. As entidades Player que utilizam o componente Player também podem acessar dados e eventos Combatable e Scoreable.

image-20251201173940400