Skip to main content

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 UnityAssets/Src/Game/Data/ByModule/
Controllers UnityAssets/Src/Game/Controllers/*ByModule* et Assets/Src/UI/SimByModule/Controllers/
UI By ModuleAssets/Src/UI/SimByModule/
Static data partagéeAssets/GameSpecific/byModule/Resources/data_byModule/
Données propres Acc1/Acc2Assets/GameSpecific/acc1|acc2/Resources/data_acc*/
Moteur serveurserver_scripts/_utils/by_module/
Base Accountingserver_scripts/acc_base/
Wrappers game-specificserver_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.