chronos/docs/PROJECT_STRUCTURE.md

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.