# Scenes

As cenas são os [entities](https://github.com/decentraland/docs/blob/main/contributor/entities/README.md) que produzem comportamento em diferentes partes do Decentraland. Elas podem abranger múltiplos lotes de terra, e jogadores que os percorrem em um World Explorer executarão código especial fornecido pela cena.

Você pode encontrar um exemplo completo da vida real em [o manifesto desta cena](https://peer.decentraland.org/content/contents/bafkreidihplrc5cxarjkji2enmzhicpjoa2vrlqyyffnholmxb3o2xft3u) no servidor de conteúdo da Foundation.

### Pointers <a href="#pointers" id="pointers"></a>

As cenas têm um ou mais [pointers](https://github.com/decentraland/docs/blob/main/contributor/pointers/README.md) na forma de strings de coordenadas de parcela, como `"0,0"`. Cada parcela executando a cena será listada no [`pointers` array](https://github.com/decentraland/docs/blob/main/contributor/entities/README.md#properties) do manifesto da entity, e todos esses pointers serão resolvidos pelo servidor de conteúdo para essa cena.

Em outras palavras, você pode escolher as coordenadas x/y de uma parcela e localizar a cena que está sendo executada consultando o servidor de conteúdo pelo `"<x>,<y>"` pointer. Esta é a forma como os World Explorers decidem se devem ativar o comportamento de uma cena à medida que o jogador navega pelo mundo.

Um `pointers` array típico se parece com isto:

```json
{
  "pointers": [
    "-113,-134",
    "-113,-133",
    "-113,-132",
  ],
  // ... outras propriedades da entity
}
```

Esses dados também estão disponíveis em `metadata.scene.parcels` campo detalhado abaixo, caso você queira salvar apenas o objeto específico da cena no manifesto.

### Campos de Metadata

Existem várias propriedades especiais para [entities](https://github.com/decentraland/docs/blob/main/contributor/entities/README.md) do tipo `scene` localizadas no `metadata` campo de nível superior.

| Campo                 | Valor                                                                                                                                                        |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `owner`               | Informações sobre o mantenedor da cena.                                                                                                                      |
| `main`                | O [nome do arquivo interno](https://github.com/decentraland/docs/blob/main/contributor/entities/README.md#files) deste arquivo JavaScript principal da cena. |
| `tags`                | Um array de rótulos string descritivos desta cena.                                                                                                           |
| `display`             | Informações sobre a cena para os Explorers mostrarem aos jogadores (veja abaixo).                                                                            |
| `scene`               | As parcelas em que esta cena está ativa, e sua localização central (veja abaixo).                                                                            |
| `contact`             | Nome e endereço de email para contatar os criadores ou mantenedores da cena (veja abaixo).                                                                   |
| `spawnPoints`         | Localizações e ângulos de câmera para jogadores que entram nesta cena (veja abaixo).                                                                         |
| `requiredPermissions` | Permissões recomendadas para os Explorers solicitarem aos jogadores (veja abaixo).                                                                           |
| `featureToggles`      | Configurações para feature flags                                                                                                                             |

{% hint style="info" %}
Lembre-se de que entities e seus metadata podem ter campos personalizados. Você pode encontrar algumas propriedades que não estão listadas aqui.
{% endhint %}

#### Display

Em `metadata.display`, você encontrará propriedades que são úteis para informar os jogadores sobre a cena antes de eles entrarem nela.

| Campo             | Valor                                                                                                                                                                             |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `title`           | O nome de exibição desta cena.                                                                                                                                                    |
| `description`     | Uma descrição estendida desta cena.                                                                                                                                               |
| `favicon`         | *Depreciado* O [nome do arquivo interno](https://github.com/decentraland/docs/blob/main/contributor/entities/README.md#files) para um ícone, exibido quando esta cena está ativa. |
| `navmapThumbnail` | O [nome do arquivo interno](https://github.com/decentraland/docs/blob/main/contributor/entities/README.md#files) para a miniatura desta cena no mapa mundial.                     |

Um exemplo:

```json
{
  "title": "my_cool_scene",
  "favicon": "favicon.png",
  "navmapThumbnail": "thumbnail.png"
}
```

#### Scene

O `metadata.scene` propriedade é um objeto que descreve a posição desta cena no mapa mundial.

| Campo     | Valor                                                    |
| --------- | -------------------------------------------------------- |
| `parcels` | Um array de pointers de parcelas que executam esta cena. |
| `base`    | O pointer da parcela para o ponto de origem desta cena.  |

Na prática, parece assim:

```json
{
  "parcels": [
    "17,-112", 
    "17,-113"
  ],
  "base": "17,-112"
}
```

O `base` campo é sempre incluído no `parcels` array.

#### Contact

O `metadata.contact` objeto contém as informações de contato do proprietário ou mantenedor da cena.

| Campo   | Valor                                         |
| ------- | --------------------------------------------- |
| `name`  | Um nome para este contato.                    |
| `email` | (Opcional) Um endereço de email para contato. |

Em JSON:

```json
{
  "name": "cool_scene_maker",
  "email": "hello@decentraland.org"
}
```

Enquanto o `name` campo é preenchido em toda cena, você verá que na prática o `email` campo frequentemente é uma string vazia. Esta é uma escolha de privacidade feita pelo criador da cena.

#### Spawn Points

O `metadata.spawnPoints` campo define um array de pontos e direções de câmera determinando onde os jogadores que entram na cena devem aparecer, e para onde devem olhar inicialmente. Deve haver pelo menos um ponto de spawn definido.

Cada item no array possui um número de propriedades:

| Campo          | Valor                                                                         |
| -------------- | ----------------------------------------------------------------------------- |
| `name`         | Um rótulo para identificar este ponto de spawn.                               |
| `position`     | A posição inicial em um `{ x, y, z }` objeto com coordenadas float.           |
| `cameraTarget` | A direção inicial da câmera em um `{ x, y, z }` objeto com coordenadas float. |
| `default`      | Se este ponto de spawn é usado, a menos que especificado o contrário.         |

Por exemplo:

```json
[
  {
    "name": "spawn1",
    "position": { "x": 10.02, "y": 5.27, "z": 15.23  },
    "cameraTarget": { "x": 10.02, "y": 6.27, "z": 31.23 },
    "default": true
  }
]
```

{% hint style="info" %}
**📔 Note**: A Spawn Area e o Camera Target podem ser configurados usando o Creator Hub. Para mais informações, vá para o [Spawn Area](https://github.com/decentraland/docs/blob/main/creator/scene-editor/build/spawn-areas.md) docs.
{% endhint %}

#### Required Permissions <a href="#permissions" id="permissions"></a>

Em `metadata.requiredPermissions` você encontrará um array de strings bem conhecidas declarando quais permissões devem ser solicitadas ao jogador antes que o World Explorer permita certas ações. Isso cabe ao Explorer; outros clientes construídos para diferentes propósitos podem escolher ignorar isto.

Este é o conjunto atual de permissões suportadas:

| Permission                          | Purpose                                                                     |
| ----------------------------------- | --------------------------------------------------------------------------- |
| `USE_FETCH`                         | Permitir que a cena realize requisições HTTP externas.                      |
| `USE_WEBSOCKET`                     | Permitir que a cena use a API WebSocket para estabelecer conexões externas. |
| `OPEN_EXTERNAL_LINK`                | Permitir que a cena abra uma URL (em uma aba do navegador ou web view).     |
| `USE_WEB3_API`                      | Permitir que a cena se comunique com uma wallet.                            |
| `ALLOW_TO_TRIGGER_AVATAR_EMOTE`     | Permitir que a cena anime o avatar do jogador com um emote.                 |
| `ALLOW_TO_MOVE_PLAYER_INSIDE_SCENE` | Permitir que a cena altere a posição do jogador.                            |

#### Feature Toggles

O `metadata.featureToggles` campo permite que uma cena indique se certas funcionalidades do World Explorer devem ser habilitadas ou desabilitadas.

O campo contém um objeto da forma `{ [featureName]: 'enabled' | 'disabled' }`, como este:

```json
{
  "voiceChat": "enabled"
}
```

Atualmente, `voiceChat` é a única feature flag comumente suportada.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.decentraland.org/contributor/contributor-pt/content/entity-types/scenes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
