La structure du projet Sponge
Le Sponge Project est composé de différents sous-projets, hébergés sur leur dépôt respectif sur GitHub. Avant d’entrer dans les détails, voici un bref aperçu:
Projet |
Description |
Qu’est-ce qui est fait dans le dépôt? |
---|---|---|
L’API elle-même |
Le développement de l’API elle-même |
|
Une implémentation de SpongeAPI faite avec et pour Forge |
Développement des parties de SpongeForge qui reposent sur Forge |
|
Une implémentation de SpongeAPI faite pour et avec Minecraft Vanilla |
Développement de l’homologue Vanilla du dépôt de SpongeForge |
|
Le code commun à SpongeForge et SpongeVanilla |
Développement de tout le code qui est partagé entre SpongeForge et SpongeVanilla |
|
L’outil utilisé pour injecter l’implémentation dans la structure du code sous-jacent |
Développement de notre solution pour adapter Sponge au serveur Minecraft |
|
La Documentation officielle du SpongeProject |
Expansion, correction et écriture de SpongeDocs |
|
Le site web du SpongeProject |
Développement de notre site Web |
|
Solution d’hébergement de plugins |
Développement de notre solution d’hébergement de plugins |
|
L’interface d’authentification et SSO pour nos sites web |
Développement de notre interface d’authentification et solution SSO |
SpongeCommon, SpongeForge et SpongeVanilla
Le dépôt de SpongeCommon est la base qui contient tout le code qui est communs aux deux implémentation, SpongeForge et SpongeVanilla. Les dépôt de SpongeForge et SpongeVanilla contiennent le code qui ne peut pas être partagé avec l’autre implémentation, puisque Forge requiert certaines choses propres à Forge qui ne fonctionneront pas en Vanilla et vice versa.
Lorsque vous faites référence à l’implémentation SpongeForge, vous parlez de tout le contenu des dépôts de SpongeCommon et SpongeForge. Il en va de même pour SpongeVanilla et SpongeCommon. C’est la raison pour laquelle la construction de SpongeForge ou SpongeVanilla depuis le dépôt sans SpongeCommon ne fonctionnera pas.
SpongeHome
SpongeHome est le site web du Sponge Project. Il est écrit en Golang, en utilisant la library go-macaron. Il utilise SCSS en tant que préprocesseur CSS.
Ore
Ore est notre solution d’hébergement de plugins. Il est écrit en Scala, basé sur le Play Framework et est bien sûr open source !
Comment tout est lié
L’image montre les parties variées des implémentations Sponge et comment elles interagissent entre elles et avec leurs dépendances. Sur le côté gauche, une installation typique de SpongeForge avec quelque plugins utilisant SpongeAPI, un mod Forge et un hybride qui utilise Forge (en tant que mod) et Sponge (en tant que plugin) pour interagir. Sur le côté droit il y a une installation typique de SpongeVanilla. Vous noterez que SpongeVanilla ne supporte pas les mods Forge ou les hybrides, car SpongeVanilla ne possède pas les fonctionnalités de Forge: