A estrutura do projeto Sponge
O projeto Sponge consiste de diferentes subprojetos, hospedados em diversos repositórios no GitHub. Aqui um breve resumo antes de entrar em detalhes:
Projeto |
Descrição |
O que é feito no repositório? |
---|---|---|
A própria API |
Desenvolvimento da própria API |
|
Uma implementação da SpongeAPI construída em cima do Forge |
Desenvolvimento das partes do SpongeForge que dependem do Forge |
|
Uma implementação da SpongeAPI construída em cima do Minecraft Vanilla |
Desenvolvimento da parte Vanilla do SpongeForge |
|
O código compartilhado entre o SpongeForge e o SpongeVanilla |
Desenvolvimento de todo o código compartilhado entre o SpongeForge e o SpongeVanilla |
|
A ferramenta utilizada para injetar as implementações na estrutura de código |
Desenvolvimento da nossa solução para ligar o Sponge ao servidor de Minecraft |
|
A documentação oficial do projeto Sponge |
Expansão, correção e desenvolvimento da documentação do Sponge |
|
O site para o SpongeProject |
Desenvolvimento do nosso site |
|
Solução de hospedagem de plugin |
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 compartilhado entre o SpongeForge e o SpongeVanilla. Os repositórios do SpongeForge e do SpongeVanilla contêm todo o código que não pode ser compartilhado entre eles, já que o Forge requer algumas coisas específicas que não iriam funcionar no Vanilla e vice-versa.
Quando você se refere ao SpongeForge, você está basicamente se referindo a tudo contido nos respositórios do SpongeCommon e SpongeForge. O mesmo se aplica para o SpongeVanilla e SpongeCommon. Por esta razão que compilar o SpongeForge ou o SpongeVanilla sem o SpongeCommon não irá funcionar.
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 diversas partes das implementações do Sponge e como elas interagem entre si e suas dependências. No lado esquerdo há um típico setup do SpongeForge com alguns plugins da SpongeAPI, um mod do Forge e um híbrido que usa o Forge (como mod) e Sponge (como plugin) para interagir. No lado direito há um típico setup do SpongeVanilla. Nota-se que o SpongeVanilla não suporta mods do Forge ou híbridos, já que não há a funcionalidade do Forge no SpongeVanilla: