Estrutura do Projeto Sponge
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 |
|
O portal de autenticação e SSO para os nossos websites |
Desenvolvimento do nosso portal de autenticação e da solução SSO |
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 Projeto Sponge. É 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: