Refactor: reorganize scripts with domain-driven design structure
Move all C# scripts from flat structure to organized folders: - Core/ for game logic (Game, GameState, GameSettings) - UI/Menus/ and UI/Dialogs/ for user interface - Systems/ for reusable systems (Save, Localization) - Data/ for data models and configuration - Added framework for future: Gameplay/, Story/, Modding/ Update all .tscn scene files to reference new script paths. Fix timing issue in AdvancedSaveDialog focus handling.
This commit is contained in:
127
scripts/README.md
Normal file
127
scripts/README.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# Scripts Structure - Domain-Driven Design
|
||||
|
||||
Detta projekt använder en Domain-Driven Design-struktur för att organisera koden på ett skalbart och underhållbart sätt.
|
||||
|
||||
## Mappstruktur
|
||||
|
||||
### Core/
|
||||
Grundläggande spellogik och huvudsystem
|
||||
- `Game.cs` - Huvudklass för spelet
|
||||
- `GameState.cs` - Spelets tillstånd
|
||||
- `GameSettings.cs` - Spelinställningar
|
||||
|
||||
### UI/
|
||||
Användargränssnitt och visuella komponenter
|
||||
|
||||
#### UI/Menus/
|
||||
Menyhantering
|
||||
- `MainMenu.cs` - Huvudmeny
|
||||
- `LoadGameMenu.cs` - Ladda spel-meny
|
||||
- `SettingsMenu.cs` - Inställningsmeny
|
||||
- `PauseMenu.cs` - Pausmeny
|
||||
- `InstanceSelectionMenu.cs` - Val av spelinstans
|
||||
|
||||
#### UI/Dialogs/
|
||||
Dialogrutor och popup-fönster
|
||||
- `SaveDialog.cs` - Spara spel-dialog
|
||||
- `AdvancedSaveDialog.cs` - Avancerad spara-dialog
|
||||
- `ExitConfirmationDialog.cs` - Bekräftelse för avslut
|
||||
|
||||
#### UI/HUD/
|
||||
Heads-up Display komponenter (framtida användning)
|
||||
|
||||
### Gameplay/
|
||||
Spelmekanik och spelspecifik logik
|
||||
|
||||
#### Gameplay/Units/
|
||||
Enheter och karaktärer (framtida användning)
|
||||
|
||||
#### Gameplay/Actions/
|
||||
Spelares aktioner och kommandon (framtida användning)
|
||||
|
||||
#### Gameplay/Stats/
|
||||
Statistik och värdesystem (framtida användning)
|
||||
|
||||
#### Gameplay/Combat/
|
||||
Stridssystem (framtida användning)
|
||||
|
||||
#### Gameplay/World/
|
||||
Världslogik och miljö (framtida användning)
|
||||
|
||||
### Story/
|
||||
Berättelse och narrativ
|
||||
|
||||
#### Story/Events/
|
||||
Story-events och händelser (framtida användning)
|
||||
|
||||
#### Story/Dialogue/
|
||||
Dialogsystem (framtida användning)
|
||||
|
||||
#### Story/Quests/
|
||||
Uppdragssystem (framtida användning)
|
||||
|
||||
#### Story/Narrative/
|
||||
Berättarlogik (framtida användning)
|
||||
|
||||
### Systems/
|
||||
Återanvändbara system och managers
|
||||
|
||||
#### Systems/Save/
|
||||
Spara/ladda-system
|
||||
- `SaveManager.cs` - Hanterar sparning/laddning
|
||||
- `SaveInstance.cs` - Representation av sparfil
|
||||
|
||||
#### Systems/Localization/
|
||||
Lokaliseringssystem
|
||||
- `LocalizationManager.cs` - Hanterar språkstöd
|
||||
|
||||
#### Systems/Audio/
|
||||
Ljudsystem (framtida användning)
|
||||
|
||||
#### Systems/Input/
|
||||
Inputhantering (framtida användning)
|
||||
|
||||
#### Systems/Events/
|
||||
Event bus och messaging (framtida användning)
|
||||
|
||||
### Data/
|
||||
Datamodeller och konfiguration
|
||||
- `GameSeed.cs` - Spelfrö för procedurell generering
|
||||
|
||||
#### Data/Configurations/
|
||||
Konfigurationsfiler (framtida användning)
|
||||
|
||||
#### Data/Definitions/
|
||||
Data definitions för units, actions etc (framtida användning)
|
||||
|
||||
#### Data/Serialization/
|
||||
Serialization helpers (framtida användning)
|
||||
|
||||
### Modding/
|
||||
Mod-stöd och utbyggbarhet
|
||||
|
||||
#### Modding/API/
|
||||
Mod API interfaces (framtida användning)
|
||||
|
||||
#### Modding/Loader/
|
||||
Mod loading system (framtida användning)
|
||||
|
||||
#### Modding/Framework/
|
||||
Mod framework (framtida användning)
|
||||
|
||||
## Fördelar med denna struktur
|
||||
|
||||
1. **Skalbarhet** - Lätt att lägga till nya features utan att påverka befintlig kod
|
||||
2. **Separation of Concerns** - Varje mapp har ett tydligt ansvar
|
||||
3. **Moduläritet** - System kan utvecklas oberoende av varandra
|
||||
4. **Testbarhet** - Enkel att skriva enhetstester för varje domän
|
||||
5. **Mod-vänlighet** - Tydlig struktur för mod-utvecklare
|
||||
6. **Underhållbarhet** - Utvecklare vet direkt var de ska leta efter funktionalitet
|
||||
|
||||
## Riktlinjer för utveckling
|
||||
|
||||
- Håll relaterade klasser tillsammans i samma undermapp
|
||||
- Använd namespaces som matchar mappstrukturen
|
||||
- Skapa nya undermappar när en mapp blir för stor (>10-15 filer)
|
||||
- Undvik cirkulära dependencies mellan mappar
|
||||
- Använd interfaces för att kommunicera mellan olika domäner
|
||||
Reference in New Issue
Block a user