Pular para conteúdo

Objeto Scene

Objeto Scene

O Objeto Scene representa um "tabuleiro de combate" aberto pelo usuário e é a instância principal de um Scene e, através deste objeto, o programador consegue acessar todas as propriedades do mesmo.

 

O programador não consegue instanciar um "Objeto Scene" através do SDK 3, mas: 

  •  
  • Consegue descobrir todos os Scenes abertos pelo usuário utilizando a função SceneLib.getScenes
  • Consegue instalar um plug-in de Scene para todos os plug-ins abertos (e que vierem a ser abertos depois) utilizando a função SceneLib.registerPlugin.

 

Herança

O o**bjeto Scene** herda de SceneBaseObject e possui também todas as suas características.

Características

Além das características herdadas, o objeto Scene também possui as seguintes características:

Propriedades e atributos

Propriedade Tipo Descrição
worldWidth Double Define a LARGURA do tabuleiro de combate. O valor desta propriedade contem o valor em Métrica do Mundo Scene
worldHeight Double Define a ALTURA do tabuleiro de combate. O valor desta propriedade contem o valor em Métrica do Mundo Scene
worldMetricName String Define o nome da métrica do mundo que é usada por este scene.  Exemplo: "m", "km", "cm", etc..  Exemplo2: supondo que a propriedade worldWidth = 60 e worldMetricName = "km", intepreta-se que tabuleiro possui uma largura de 60 quilômetros. 
bkgColor String de Color Define a cor de fundo do tabuleiro.  Exemplo: "white", "black", "#FFDE05" 
bkgImageURL String Contém a URL da imagem/bitmap que será renderizada como fundo do tabuleiro.  Este valor: Pode ser um endereço de internet (exemplo: “http://xxxx.com.br/a.png”)  Pode ser o caminho de um arquivo contido no pacote do plugin. Pode ser um arquivo que se encontra no HD Virtual do plugin instalado. 
workingLayer Enumerado: "background" "objects" "tokens"  Define qual em que camada do scene o usuário está trabalhando.  "map" - O usuário está trabalhando na camada Background  "objects" - O usuário está trabalhando na camada Objetos  "tokens" - O usuário está trabalhando na camada Tokens.  Este é um valor local e não é compartilhado com os outros usuários que estão visualizando o mesmo scene.  Saiba mais sobre as camadas em: As camadas do tabuleiro 
viewport Objeto SceneViewport (Somente Leitura) Objeto viewport do Scene. Objeto que contém propriedades sobre a "tela" do Scene, como "Qual região do scene o usuário está vendo", "Qual o zoom que o usuário aplicou no tabuleiro?", etc.. 
grid Objeto SceneGridLayer (Somente Leitura) Objeto que contém características, informações e utilitários a respeito da GRID do scene. 
items Objeto SceneGraphicItemList (Somente Leitura) Objeto que reúne os itens visuais do tabuleiro como tokens. 
fogOfWar Objeto SceneFogOfWar (Somente Leitura) Objeto que reúne informações e operações com o FogOfWar/Névoa de Guerra do Tabuleiro de combate. 
isGM Boolean (Somente Leitura) True se o usuário atual é mestre deste scene ou false. 
isViewingAsGM Boolean True se o usuário atual for mestre e estiver visualizado como mestre do scene.  O usuário atual pode ser mestre mas desejar ver como os jogadores estão enxergando o scene, então isGM = true e isViewingAsGM = false. 
isViewingWalls Boolean True se o usuário atual for mestre e estiver visualizado as paredes/áreas opacas do tabuleiro. 
currentUserID String (Somente Leitura) Contém o login do usuário atual que está utilizando o Scene. 
renderAsPlayer Boolean (Somente Leitura) Uma propriedade bem peculiar e mais difícil de explicar. Algumas vezes, mesmo quando "isGM" é true e "isViewingAsGM" é true, o tabuleiro deve ser renderizado como "visualizando como jogador".  Esta propriedade foi feita inicialmente pensando na integração do Firecast com o programa "OBS Studio" para streaming. Enquanto o mestre está visualizando o tabuleiro como GM, o tabuleiro deve ser renderizado como jogador para o "OBS Studio". 

 

 

Métodos

Método Descrição
scene:newTransaction() Cria um NodeTransaction que poderá ser utilizado para gerenciar as mudanças feitas localmente no Scene.  Retorna: Um objeto NodeTransaction que poderá ser utilizado em scene:pushTransaction() 
scene:pushTransaction(transaction) Ativa uma transação para controlar mudanças no Scene.  Parâmetros: transaction - um objeto NodeTransaction previamente criado pela função scene:newTransaction que controlará as próximas mudanças no Scene.  Observações: Após ativar uma transação, todas as alterações que ocorrerem no Scene serão mantidas localmente e não serão compartilhadas automaticamente com os outros usuários. Você deverá controlar o que acontecerá com estas mudanças ao invocar "transaction:rollback()" se quiser desfazê-las ou "transaction:commit()" para confirmá-las e compartilhar-lhas com os outros usuários. Para cada chamada de scene:pushTransaction(), deve haver uma chamada de scene:popTransaction()
scene:popTransaction() Desativa a última transação ativada no Scene pela função scene:pushTransaction()  Observações: Para cada chamada de scene:pushTransaction(), deve haver uma chamada de scene:popTransaction(). Se antes de chamar pushTransaction o Scene já estava sendo controlado por alguma transação, esta transação é restaurada. Apenas invocar este método não é o suficiente para realizar o controle das mudanças. Você o invocar o método "rollback()" da transaction se quiser desfazer as mudanças capturadas ou invocar o método "commit()" da transaction para confirmar e compartilhar as mudanças capturadas.  
scene:broadcastMessage(messageId, message [, loopBack]) Envia uma mensagem a todos os outros usuários que estão com o scene aberto.  Parâmetros: messageId - Uma cadeia de caracteres contendo a identificação da mensagem. message - A mensagem a ser transmitida. Aqui são aceitos textos, tabelas lua, números e booleanos. (OPICIONAL) loopBack - Informa se quer que esta mensagem seja retransmitida para você mesmo. Valor padrão: false   Observações: A mensagem enviada é entregue a todos os outros usuários conectados no scene. Para receber as mensagens recebidas, o usuário destinatário deve ter previamente invocado a função scene:newBroadcastListener 
scene:newBroadcastListener(messageId, callback) Cria uma escuta de mensagens para receber mensagens postadas pela função scene:broadcastMessage   Parâmetros: messageId - Uma cadeia de caracteres contendo a identificação das mensagens que deseja receber. Deve ser igual ao messageId usado na função scene:broadcastMessage. callback - Uma função que será invocada ao receber mensagens. Esta função recebe três parâmetros na seguinte ordem: sender - Cadeia de caracteres contendo o login do usuário que enviou a mensagem messageId - Cadeia de caracteres contendo a identificação da mensagem recebida message - A mensagem que foi postada.  Retorno: Retorna um objeto representando o Listener.  Observações: Importante: Mantenha referência ao objeto retornado por esta função enquanto quiser que a escuta esteja ativa. Se o coletor de lixo LUA coletar este objeto, a escuta é destruída e a função callback não será mais invocada. Se quiser destruir a escuta imediatamente, invoque a função destroy do objeto retornado.... obj:destroy(); 
scene:sendDelayedUpdates() Force the scene to transmit all the pending delayed updates caused by the network transfer optimization

 

 

Eventos

Nome do evento Descrição
onWorkingLayerChange Evento que é chamado quando a propriedade workingLayer for alterada. 
onGMStateChange Evento que é chamado quando as propriedades isGM, isViewingAsGM ou isViewingWalls mudarem. 

 

Exemplos

Exemplo 1 - Um Plugin de Scene que, ao se anexar a um tabuleiro, exibe uma mensagem com algumas características do Scene.

 

require("scene.lua"); require("dialogs.lua");   SceneLib.registerPlugin(     function (scene, attachment)                    showMessage("Plugin anexado a um tabuleiro de tamanho " ..                     scene.worldWidth .. scene.worldMetricName .. " x " ..                     scene.worldHeight .. scene.worldMetricName ..                     " de cor de fundo ".. scene.bkgColor);     end); 

Created with the Personal Edition of HelpNDoc: Add an Extra Layer of Security to Your PDFs with Encryption