Структура проекта Sponge
Проект Sponge состоит из нескольких подпроектов, расположенных в репозиториях на GitHub. Перед тем, как перейти к подробностям, ознакомьтесь с кратким обзором:
Проект |
Описание |
Что завершено в репозитории? |
---|---|---|
Сам API |
Сама разработка API |
|
Реализация SpongeAPI, построенная на основе Forge |
Разработка частей SpongeForge, которые зависят от Forge |
|
Реализация SpongeAPI, построенная непосредственно на основе оригинального Minecraft |
Разработки SpongeVanilla и SpongeForge во многом аналогичны |
|
Общий код между SpongeForge и SpongeVanilla |
Разработка всего кода, который разделён между SpongeForge и SpongeVanilla |
|
Инструмент, используемый для совмещения реализаций и нижележащего программного кода |
Разработка нашего решения для включения Sponge в сервер Minecraft |
|
Официальная документация проекта Sponge |
Расширение, исправление и написание SpongeDocs |
|
Веб-сайт для SpongeProject |
Разработка нашего веб-сайта |
|
Решения для хостинга плагинов |
Разработка нашего решения хостинга плагинов |
|
Портал аутентификации и SSO для наших сайтов |
Development of our authentication portal and SSO solution |
SpongeCommon, SpongeForge и SpongeVanilla
Репозиторий SpongeCommon - это база, которая содержит весь код, используемый совместно реализациями SpongeForge и SpongeVanilla. Репозитории SpongeForge и SpongeVanilla содержат все коды, которые не могут использоваться ими совместно, поскольку для Forge требуются специфические для него условия, которые не будут работать в Vanilla и наоборот.
При работе с реализацией SpongeForge Вы должны понимать, что на самом деле речь идёт едином коде, образованном репозиториями SpongeCommon и SpongeForge. Ситуация со связкой SpongeCommon + SpongeVanilla аналогична. Это является причиной невозможности получить рабочий вариант SpongeForge или SpongeVanilla без включения в них SpongeCommon.
SpongeHome
SpongeHome - это веб-сайт проекта Sponge. Он написан на Golang, используя библиотеку go-macaron. Он использует SCSS как его CSS препроцессор.
Ore
Ore - это наше собственное решение для хостинга плагинов. Он написан на Scala, на основе Play Framework и, конечно, он с открытым исходным кодом!
Как всё взаимодействует друг с другом
На следующем рисунке изображены различные компоненты Sponge и то, как они взаимодействуют друг с другом и с из зависимостями. Слева представлена классическая сборка с несколькими плагинами на основе SpongeAPI, модом Forge и гибридом, который использует Forge (являясь его модом) и Sponge (являясь его плагином) для взаимодействия. Справа — сборка на основе SpongeVanilla. Ещё раз отметим, что SpongeVanilla не поддерживает ни моды Forge, ни гибридные плагины, потому что в SpongeVanilla не включен функционал, который есть в Forge: