04-06-2021 02:10 AM (Esta mensagem foi modificada pela última vez a: 04-11-2021 11:06 PM por LuanTavares127.)
Neste tutorial, você aprenderá como adicionar suporte ManureSystem ao seu mod colocável.
O que eu preciso?
Para executar com sucesso as etapas exigidas neste tutorial, você precisará dos seguintes programas:
Editor de texto ([Para ver os links, por favor se registre no fórum aqui ou faça seu login aqui], [Para ver os links, por favor se registre no fórum aqui ou faça seu login aqui] ou outro programa equivalente...)
[Para ver os links, por favor se registre no fórum aqui ou faça seu login aqui] ou software 3D que suporta o GIANTS Exporter (Maya, blender ...)
Conexão com a Internet para baixar fontes do GitHub
Para colocáveis (não colocáveis construídos no mapa), você também precisa de um script extra para verificar se o ManureSystem existe. Você precisará obter uma cópia do arquivo ManureSystemAvailabilityCheck.lua mais recente, que pode ser encontrado no repositório [Para ver os links, por favor se registre no fórum aqui ou faça seu login aqui].
Se o seguinte link de [Para ver os links, por favor se registre no fórum aqui ou faça seu login aqui] não funcionar, você pode seguir as seguintes etapas sobre como baixar o arquivo ManureSystemAvailabilityCheck.lua:
Vá para a pasta docs localizada no diretório raiz.
Clique no arquivo ManureSystemAvailabilityCheck.lua.
Uma janela será aberta com o arquivo de script.
Clique no botão Raw ao lado do botão Blame e o arquivo será aberto no formato RAW.
Clique com o botão direito e clique em salvar como (ou pressione ctrl - s no teclado) e salve o arquivo no local preferido em seu mod.
LEMBRE-SE: Renomeie a extensão do arquivo para .lua e não salve como .txt!
Adicionando o ManureSystemAvailabilityCheck
AVISO: você pode pular esta etapa quando não estiver lidando com um mod autônomo (ou seja, com placáveis integrados)
Citar:Para iniciar esta etapa, você precisa ter concluído a parte O que eu preciso ?.
Nesta parte do tutorial, vamos adicionar uma verificação de disponibilidade, isso é necessário para garantir que o usuário ativou o mod ManureSystem a fim de tornar nosso colocável totalmente funcional! Se o ManureSystem não estiver ativado/disponível, o ManureSystemAvailabilityCheck.lua removerá seu colocável da loja para evitar possíveis erros para o usuário final.
Terceirizar a verificação de disponibilidade
Na parte anterior do tutorial, você baixou o script ManureSystemAvailabilityCheck, nesta parte vamos integrá-lo ao seu mod.
Primeiro, você precisará abrir o modDesc.xml do seu mod. Teremos que adicionar a verificação de disponibilidade à tag <extraSourceFiles> do seu modDesc. Se o seu mod já o tiver, basta adicionar a entrada extra <sourceFile>.
O nome do arquivo deve ser a localização exata do arquivo ManureSystemAvailabilityCheck.lua que você baixou anteriormente. Nesse caso, ele é carregado do diretório raiz do mod.
Terminamos no modDesc, seu mod agora faz a verificação de disponibilidade.
Adicionando conectores
Para poder adicionar conectores, você deve certificar-se de que seu tipo de colocação é:
husbandry - vanilla colocável à criação de animais.
bgaPlaceable - tipo vanilla colocável para bga
FS19_manureSystem.manureSystemStorage - script de armazenamento no sistema de esterco
Como você pode configurar o FS19_manureSystem.manureSystemStorage será tratado no capítulo abaixo.
Tipos de conectores
Os conectores são necessários para informar, por exemplo, mangueiras ou fillarms onde conectar. Simplesmente disse que faz a ponte entre as funções.
Atualmente, o mod suporta 4 tipos de conectores:
COUPLING (mangueira de acoplamento de esterco)
COUPLINGFERTILIZER (mangueira de acoplamento de fertilizante)
DOCK (funil)
OPTICAL (como o nome já sugere não funcional, apenas ótico)
Acoplamentos
Em nosso primeiro exemplo, veremos como adicionar um tipo de conector COUPLING ao nosso colocável, este exemplo também funciona para o tipo COUPLINGFERTILIZER.
Adicionando o nó do conector
Abra o XML do colocável e adicione a tag <manureSystemConnectors> como filha da tag placeable.
NOTA: ao lidar com os colocáveis do BGA, o <manureSystemConnectors> precisa ser filho da tag <bga></bga> como:
Substitua os .. (pontos) por uma entrada de conector. Para nossa primeira entrada de conector, usaremos um grupo de transformação de referência existente do arquivo i3d. Para isso abrimos o arquivo i3d e copiamos o índice do nó desejado.
NOTA: os colocáveis não funcionam com mapeamentos i3d, então temos que usar Index Path neste caso!
Agora que encontramos nosso nó e copiamos o índice, temos que adicionar uma entrada de conector à tag <manureSystemConnectors>.
Note que eu removi 0> do índice, isso não é usado nos colocáveis em geral!
Isso informa ao mod ManureSystem que o nó no índice 1|1|2|1 é um COUPLING para mangueiras de esterco.
Também podemos usar a opção de dizer ao ManureSystem para criar um nó (como mencionado em outros tutoriais).
DICA: Por meio de todo o mod, você tem a opção de criar um nó com o atributo createNode ou a opção de se referir a um nó existente com o atributo node.
Isso criará um nó COUPLING vinculado ao nó no index 0|3 com a posição e rotação fornecidas.
IMPORTANTE
Se você estiver experimentando uma desconexão direta ou comportamento de arrastamento da mangueira ao tentar conectá-la ao seu objeto, terá que adicionar uma entrada rootNode à tag <manureSystemConnectors>.
Este rootNode é o nó físico básico (requer corpo rígido) necessário para lidar com conexões de mangueiras. Portanto, use, por exemplo, o nó de corpo rígido fechado que você pode encontrar para o nó de conector definido.
Observe que rootNodes em escala (ou nós físicos em geral) não funcionarão! Portanto, verifique se o nó de sua escolha tem uma escala de 1 em todos os eixos.
Quando adicionamos um rootNode ao exemplo acima, isso resultaria no seguinte:
DICA: para verificar se o nó está na posição correta, sugiro que você olhe no jogo e use o comando do console msToggleDebug, que irá destacar todos os nós do conector usados.
Adicionar animações de conector
Os tipos de conectores COUPLING e COUPLINGFERTILIZER possuem suporte de animação para travamento e abertura do fluxo de dejetos. Isso é feito nas entradas de AnimatedObjects.
** Por causa do tutorial, presumo que você saiba como adicionar entradas do AnimatedObject.
Para animações de objeto, o conector oferece suporte a duas entradas:
lockAnimationIndex: int, por exemplo 1 este é o índice da entrada animatedObject no xml
manureFlowAnimationIndex: int, por exemplo 1 este é o índice da entrada animatedObject no xml**
Para o exemplo, adicionei duas entradas de animação simples que giram um nó em um determinado keyFrame.
Eles têm a seguinte aparência (NÃO COPIE AS CEGAS):
Acima, temos duas entradas de animationObject que podemos contar como 1 e 2 (você pode simplesmente contar as tags </animatedObject> (final))
Para acionar a animação em nossos conectores, temos que definir o índice que acabamos de contar com o atributo lockAnimationIndex ou manureFlowAnimationIndex. Isso resultará na **seguinte entrada.
No exemplo acima, o animatedObject com índice 1 será reproduzido para a animação de bloqueio e o animatedObject com índice 2 será reproduzido para o fluxo de estrume.
NOTA:lockAnimationIndex funciona com e sem manureFlowAnimationIndex, mas manureFlowAnimationIndex requer o lockAnimationIndex!
Configurando opções de conector adicionais
Para objetos colocáveis, existem dois atributos adicionais que você pode definir nos conectores.
Para o tipo ACOPLAMENTO e ACOPLAMENTO, você tem a opção de definir:
inRangeDistance int, por exemplo 1.8 Isso determina a distância até que a mangueira possa ser conectada (útil para aumentar as possibilidades de conexão/desconexão em locais de difícil acesso)
isParkPlace: true/false Sinaliza se o conector for usado apenas para estacionar a mangueira.
Adicionando suporte ManureSystemStorage
Citar:Antes de continuar, certifique-se de terminar de adicionar ManureSystemAvailabilityCheck em Adicionando ManureSystemAvailabilityCheck.
Abra seu arquivo xml colocável novamente.
Para carregar o ManureSystemStorage, você terá que definir o seguinte placeableType.
O ManureSystemAvailabilityCheck adicionado garantirá que o mod não entre em conflito quando o ManureSystem não for carregado.
Para configurar o mínimo necessário para o armazenamento, você precisará adicionar a entrada .
As opções para a entrada de armazenamento são:
nó: string, por exemplo 1|2 O índice do nó do armazenamento.
fillTypeCategories: string, por exemplo slurryTank As categorias de filltype com suporte.
fillTypes: string, por exemplo liquidManure O fillType suportado (SOMENTE NECESSÁRIO QUANDO VOCÊ DESEJA ESPECIFICAR FILLETYPES ESPECÍFICOS)
capacityPerFillType: int, por exemplo 500 A capacidade de armazenamento.
Também precisamos de uma entrada <trigger> para mostrar as informações do jogador em nosso armazenamento. Esta é simplesmente uma referência de nó para o gatilho em seu mod i3d.
Certifique-se de que o trigger esteja marcado como trigger na guia de rigid body e que o gatilho tenha uma collision mask (HEX) de 100000.
O exemplo acima adicionará a marca do nó no índice 1|2 como plano visível que está na translação Y -3,6 quando vazio e na translação Y 0,28 quando completamente cheio.
O armazenamento também possui algumas opções que podemos configurar para o mixer opcional.
hasMixer: true/false Define se o armazenamento tem um mixer
mixPerSecond: int, por exemplo 150 A quantidade de litros que pode misturar por segundo.
Quando o hasMixer é definido como true, temos a opção de adicionar sons e Nodes de animação para isso, isso deve ser conhecido a partir de implementações de vanilla, então não vou a fundo.
Uma entrada manureSystemStorage completa seria semelhante a esta: