2.5 KiB
2.5 KiB
Struktura souborů a složek
Níže je uveden přehled důležitých souborů, včetně jejich funkcí:
Backend
src/main/java/.../services/InitGameService.java
- Třída zodpovědná za inicializaci nové hry.
- Obsahuje logiku pro nastavení výchozích parametrů hry.
- Vytvoření všech místností, všech postav, všech dialogů a inicializace všech itemů ve hře.
src/main/java/.../interactions/InteractionService.java
-
Třída zodpovědná za zpracování všech interakcí.
Poznámka: Interakce je jakákoliv akce, která proběhne při hraní minihry. Na příklad odeslání odpovědi na otázku, pokus o uhodnutí čísla, a další. Tyto interakce jsou posílány přes endpoint
game/characters/interact
. -
Všechny interakce jsou třídy které implementují interface
.../interactions/InteractionPlayer
-
Data pro interakci jsou vždy posílány jako
String
src/main/java/.../utils/annotations/UserCheckAspect.java
- Implementace anotace
@CheckUser
, která kontroluje zda je uživatel autorizovaný při vytváření požadavku na server.
Frontend
src/main/java/.../api/ApiService.java
- Interface, který obsahuje všechny endpointy pro API.
- Tato tříde je poté implementována knihovnou
retrofit2
src/main/java/.../utils/Cli.java
- Tato třída obsahuje funkce pro vypisování textu do stdout a získavání dat z stdin.
src/main/java/.../utils/ConfigPathProvider.java
- Třída zodpovědná za zjištění operačního systému a vrácení správné lokace configuračního souboru.
src/main/java/.../game/CommandPalette.java
- Třída zodpovědná za vypisování palety příkazů.
- Tato třída taky zjišťuje stav inventáře, jestli není plný. Pokud je, vypisuje varovnou hlášku.
- Tato třída dává přístup do inventáře, chatu, profilu hráče a opuštění hry
- Taky tato třída kontroluje jestli již hra není vyhrána. (Jestli jiný hráč nevložil poslední fragment klíče.)
src/main/java/.../game/Chronos.java
- Třída, která spravuje přihlášení do hry, nastavení adresy serveru a připojování do hry.
src/main/java/.../game/LocalData.java
- Třída zodpovědná za ukládání lokální konfigurace do konfiguračního souboru. Ukládá game key, user secret a adresu serveru.
src/main/java/.../game/interactions/Interactions.java
- Třída zodpovědná za hraní všech miniher.
- Tato třída rozděluje interakce a spouští minihru podle typu interakce.