51 lines
2.5 KiB
Markdown
51 lines
2.5 KiB
Markdown
# 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.
|