Estrutura do Projeto Sponge
Aviso
This documentation refers to an outdated SpongeAPI version and is no longer actively maintained. While the code examples still work for that API version, the policies, guidelines, and some links may have changed. Please refer to the latest version of the documentation for those.
O Projeto Sponge é composto por vários sub-projetos, hospedados em vários repositórios no GitHub. Segue-se um breve resumo antes de irmos a detalhes:
Projeto |
Descrição |
O que é que se faz no repositório? |
---|---|---|
A própria API |
O dsenvolvimento da própria API |
|
Uma implementação da SpongeAPI construída em cima do Forge |
Desenvolvimentos das partes do SpongeForge que dependem do Forge |
|
Uma implementação da SpongeAPI construída diretamente em cima do Minecraft Vanilla |
Desenvolvimento do equivalente Vanilla do repositório SpongeForge |
|
O código comum ao SpongeForge e ao SpongeVanilla |
Desenvolvimento de todo o código que é partilhado entre o SpongeForge e o SpongeVanilla |
|
A ferramenta utilizada para injetar as implementações na estrutura de código subjacente |
Desenvolvimento da nossa solução para ligar o Sponge ao Minecraft Server |
|
A Documentação Oficial do SpongeProject |
Expansão, correção e desenvolvimento dos SpongeDocs |
|
O site do SpongeProject |
O desenvolvimento do nosso website |
|
Solução de hospedagem plugins |
Desenvolvimento da nossa solução de hospedagem de plugins |
SpongeCommon, SpongeForge e SpongeVanilla
O repositório SpongeCommon é a base que contém todo o código que é partilhado entre as implementações do SpongeForge e do SpongeVanilla. Os repositórios SpongeForge e SpongeVanilla contêm todo o código que não pode ser partilhado entre eles, uma necessidade que deriva do facto de o Forge requerer algumas coisas específicas que não funcionam no Vanilla e vice-versa.
Quando te referes à implementação SpongeForge, estás basicamente a referir-te a tudo que está nos repositórios SpongeCommon e SpongeForge. O mesmo se aplica ao caso do SpongeVanilla e SpongeCommon. Esta é a razão pela qual fazer uma build do SpongeForge ou do SpongeVanilla a partir dos seus repositórios sem incluir o SpongeCommon não funciona.
SpongeHome
SpongeHome é o website do SpongeProject. É escrito em Golang, e usa a biblioteca go-macaron. Socorre-se de SCSS como pré-processador de CSS.
Ore
O Ore é a nossa própria estrutura de alojamento de plugins. É escrito em Scala, baseado na Framework Play, e é open-source, claro!
Como tudo se encaixa
A imagem mostra as várias partes constituintes das implementações do Sponge e como elas interagem entre si e com as suas dependências. No lado esquerdo, está um setup típico do SpongeForge com alguns plugins da SpongeAPI, um mod do Forge e um híbrido que usa o Forge (como um mod) e o Sponge (como um plugin) para interagir. No lado direito, está um setup típico de SpongeVanilla. Podes reparar que o SpongeVanilla não suporta mods do Forge nem o híbrido, uma fez que o SpongeVanilla não tem as funcionalidades do Forge: