O que é?
Este é um plugin para o jogo Minecraft, onde adiciona mascotes customizados pelo administrador do servidor e pode ser usado pelos jogadores. Estes mascotes seguem o jogador pelo mapa e também podem pegar itens que estiverem perto do mesmo.
Dependencias
- Spigot 1.16.4
- Bloodmoon (Projeto particular)
- Cash (Projeto particular)
- ItemFilter (Projeto particular)
Suporte de armaduras
Suporte de armaduras são entidades dentro do jogo que servem para segurar e exibir itens vestiveis, como armaduras, cabeças de jogadores, etc.
Como estas entidades podem equipar cabeças de jogadores e cabeças de jogadores dependem de qual skin o mesmo esta usando, podemos usar inumeras texturas para vestir os suportes de armaduras. Particularmente eu gosto de usar este banco de dados.
Suportes de armaduras podem ter 2 tamanhos, normal e pequeno, também podem ser deixadas invisiveis, assim só aparecendo os itens equipados.
Lobos
Lobos são entidades que podem ser domesticados por jogadores. Quando domesticados seguem os mesmos e os defendem, eles também podem ser deixados invisiveis.
Para criarmos um mascote com cabeças customizadas precisamos invocar um lobo fiel ao jogador, armazenar este lobo na memoria viculado ao jogador e teleportar suportes de armaduras invisiveis por onde o lobo andar, porém isso não é o suficiente. Se apenas teleportarmos o suporte de armaduras para a posição do lobo teremos 2 problemas:
- 1° -> Elas possuem posições relativas ás coodenadas do lobo, ou seja, todas tem um x, y, z á ser acrescentados de acordo para onde o lobo está olhando;
- 2° -> A rotação da cabeça de cada suporte de armaduras é diferente de acordo com a distancia do centro.
Caso não resolvermos estes 2 problemas o nosso mascote personalizado ficará desta forma:
Resolução dos problemas
Precisaremos atualizar cada membro (suporte de armaduras) de acordo com sua posição relativa ao lobo, assim como para onde estarão olhando, pois um membro que esta relativamente na frente de onde o lobo está olhando tem uma rotação diferente do que um membro que esta relativamente atrás de onde o lobo estará olhando.
Descobrir o raio do membro do lobo da forma sqrt(x² + y²), após isso descobrir o real x e y com seno e cosseno do angulo.
Além das coordenadas globais do lobo (x, y, z) nós temos as informações de rotação de cabeça do mesmo, yaw em pitch.
Sabendo disso, podemos usar a informação Yaw para identificar qual direção o lobo esta olhando e transforma-la em graus para descobrir a rotação exata que cada membro deverá fazer.
Após a resolução destes 2 problemas chegamos em um resultado perfeito onde cada membro se move relativamente para onde o lobo esta e onde esta olhando.
Ovos
Ovos podem ser comprados com dinheiro virtual (cash) ou obtidos através de mascotes repetidos. A configuração de o que cada ovo tem e suas chances podem ser configuradas pelo administrador do servidor através de 2 arquivos yml, um deles da configuração em geral de cada raridade dos ovos e o outro o arquivo do proprio ovo. Os ovos podem ser visualizados pelos jogadores por um menu virtual utilizando o comando /pets.
Incubadoras
Incubadoras são onde os ovos são colocados pelo jogador de forma virtual. Para choca-los o jogador deverá fornecer combustivel para a incubadora, combustiveis como carvão, madeira, lava, etc. Dependendo da raridade do mascote que será chocado o tempo de espera será maior, o jogador pode optar por pular o tempo de espera com dinheiro virtual (cash). Após o tempo de espera acabar o jogador irá roletar uma roleta com a cabeça dos mascotes para descobrir qual ele ganhou.
Seleção de mascotes
O jogador pode escolher e ativar algum mascote dentre os mascotes que já tem desbloqueado através de um menu virtual que pode ser aberto utilizando o comando /pets.
Coletar itens
Os mascotes coletam itens automaticamente com um inventario de tamanho X onde pode ser definido pelo administrador do servidor, os itens coletados pelo mesmo podem ser retirados pelo mesmo menu de ativação do mascote, apertando o botão 9 sobre sua cabeça.