A 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 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 |
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 site do SpongeProject. Está escrito em Golang usando a biblioteca go-macaron. Ele usa o SCSS como pré-processador do CSS.
Ore
O Ore é a nossa novíssima solução de hospedagem de plugins. Está escrita em Scala, baseada na Play Framework 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: