- Ajout de 14 DataModels (10 Items + 3 Acteurs) * Items: equipment, weapon, trait, specialization, maneuver, scar, annency, boheme, contact, confrontation * Acteurs: pc, npc, annency - Corrections d'initialisation * Ordre d'initialisation corrigé (CONFIG.dataModels avant game.system) * Import dynamique des DataModels pour éviter timing issues * Helper functions pour éviter réutilisation de champs - Documentation complète * AUDIT_DATAMODELS.md: Rapport d'audit complet (85+ champs vérifiés) * MIGRATION_DATAMODELS.md: Guide de migration * FIX_INIT_ERROR.md: Résolution des erreurs * BABELE_ERROR_ANALYSIS.md: Analyse erreur Babele * RESUME_MIGRATION.md: Résumé complet * modules/models/README.md: Documentation des DataModels - template.json marqué comme DEPRECATED - changelog.md mis à jour Note: Erreur Babele/LibWrapper non résolue (problème de module externe) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
91 lines
3.0 KiB
Markdown
91 lines
3.0 KiB
Markdown
# DataModels Ecryme
|
|
|
|
## Vue d'ensemble
|
|
|
|
Ce dossier contient les DataModels pour le système Ecryme. Les DataModels sont la méthode moderne de Foundry VTT (v10+) pour définir les structures de données des acteurs et des items.
|
|
|
|
## Migration depuis template.json
|
|
|
|
Le système Ecryme a été migré de l'ancien système `template.json` vers les DataModels. Le fichier `template.json` est conservé pour référence mais est maintenant marqué comme deprecated.
|
|
|
|
## Structure des fichiers
|
|
|
|
### Modèles d'Items
|
|
|
|
- **equipment.js** - Équipements génériques
|
|
- **weapon.js** - Armes (mêlée et distance)
|
|
- **trait.js** - Traits de personnage
|
|
- **specialization.js** - Spécialisations de compétences
|
|
- **maneuver.js** - Manœuvres de combat
|
|
- **scar.js** - Cicatrices (impacts permanents)
|
|
- **annency-item.js** - Items Annency
|
|
- **boheme.js** - Bohèmes
|
|
- **contact.js** - Contacts
|
|
- **confrontation.js** - Confrontations
|
|
|
|
### Modèles d'Acteurs
|
|
|
|
- **pc.js** - Personnages joueurs (PC)
|
|
- **npc.js** - Personnages non-joueurs (NPC)
|
|
- **annency.js** - Annency (acteurs spéciaux)
|
|
|
|
### Fichier d'index
|
|
|
|
- **_module.js** - Centralise tous les exports des DataModels
|
|
|
|
## Utilisation
|
|
|
|
Les DataModels sont automatiquement enregistrés dans `CONFIG.Actor.dataModels` et `CONFIG.Item.dataModels` lors de l'initialisation du système dans `ecryme-main.js`.
|
|
|
|
### Accès aux données
|
|
|
|
Dans les acteurs et items, les données du système sont accessibles via `actor.system` ou `item.system` :
|
|
|
|
```javascript
|
|
// Exemple avec un PC
|
|
const athletics = actor.system.skills.physical.skilllist.athletics.value;
|
|
|
|
// Exemple avec une arme
|
|
const weaponType = item.system.weapontype;
|
|
```
|
|
|
|
## Avantages des DataModels
|
|
|
|
1. **Validation automatique** - Les types de champs sont vérifiés automatiquement
|
|
2. **Valeurs par défaut** - Chaque champ a une valeur initiale définie
|
|
3. **Type safety** - Meilleure autocomplete dans les IDEs
|
|
4. **Performance** - Optimisation interne de Foundry VTT
|
|
5. **Maintenance** - Code plus propre et organisé
|
|
|
|
## Compatibilité
|
|
|
|
Les DataModels sont rétrocompatibles avec les données existantes. Les acteurs et items créés avec l'ancien système `template.json` seront automatiquement migrés vers les nouveaux DataModels lors de leur chargement.
|
|
|
|
## Développement
|
|
|
|
Pour ajouter un nouveau type d'acteur ou d'item :
|
|
|
|
1. Créer un nouveau fichier DataModel dans ce dossier
|
|
2. Définir le schema avec `static defineSchema()`
|
|
3. Exporter le modèle dans `_module.js`
|
|
4. Enregistrer le modèle dans `ecryme-main.js` (CONFIG.Actor.dataModels ou CONFIG.Item.dataModels)
|
|
|
|
### Exemple minimal
|
|
|
|
```javascript
|
|
export default class MyNewItemDataModel extends foundry.abstract.TypeDataModel {
|
|
static defineSchema() {
|
|
const fields = foundry.data.fields;
|
|
return {
|
|
description: new fields.HTMLField({ initial: "" }),
|
|
value: new fields.NumberField({ initial: 0, integer: true, min: 0 })
|
|
};
|
|
}
|
|
}
|
|
```
|
|
|
|
## Documentation Foundry VTT
|
|
|
|
Pour plus d'informations sur les DataModels :
|
|
https://foundryvtt.com/article/system-data-models/
|