Architecture By Module / Accounting
Rôle
By Module est le framework où une activité est composée de modules configurables. Accounting (acc1 et acc2) est l'implémentation principale de ce framework.
flowchart LR
ACT[Activity] --> AM[ActModule]
AM --> MS[ModuleSettings]
AM --> TM[teamsModules]
TM --> MTD[TeamModuleTypeData]
MTD --> P[pagesData]
MTD --> DD[dynamicDropdownsData]
MTD --> B[bills]
MTD --> INV[inventory]
MTD --> IMM[immobilizations]
MTD --> C[contracts]
P --> UI[UI data-driven]
TM --> RES[results]
Frontières
| Responsabilité | Emplacement |
|---|---|
| Modèles Unity | Assets/Src/Game/Data/ByModule/ |
| Controllers Unity | Assets/Src/Game/Controllers/*ByModule* et Assets/Src/UI/SimByModule/Controllers/ |
| UI By Module | Assets/Src/UI/SimByModule/ |
| Static data partagée | Assets/GameSpecific/byModule/Resources/data_byModule/ |
| Données propres Acc1/Acc2 | Assets/GameSpecific/acc1|acc2/Resources/data_acc*/ |
| Moteur serveur | server_scripts/_utils/by_module/ |
| Base Accounting | server_scripts/acc_base/ |
| Wrappers game-specific | server_scripts/acc1|acc2/command/ |
Chargement Unity
StaticDataControllerByModule initialise StaticDataByModule, puis les classes Acc1/Acc2 spécialisent au besoin. Le runtime charge à la fois la static data byModule et la static data du GameUid concret.
Flux d'une modification étudiante
sequenceDiagram
participant UI as Page By Module
participant C as TeamByModuleController
participant B as BackEndBrainCloud
participant GS as acc1/acc2 custom_command
participant U as utils_custom_command_by_module
participant D as teamsModules
UI->>C: modification
C->>B: CustomCommand(commandUid, data)
B->>GS: game-specific Cloud Script
GS->>U: executeCommandByModule
U->>D: lire / modifier / sauvegarder
U-->>C: réponse + message RTT
C-->>UI: mise à jour
Pages spécialisées déjà existantes
Les pages Système de formules, Configuration Accounting — guide des JSON, Pipeline des Bills et Procédure annuelle pour updater les taxes restent les références spécialisées et ne sont pas dupliquées ici.