Removed DataModels that are NOT in template.json types array: - scar, annency-item, boheme, contact, confrontation Only valid Item types are: equipment, weapon, trait, specialization, maneuver Only valid Actor types are: pc, npc, annency Updated: - modules/models/_module.js - modules/ecryme-main.js (CONFIG.Item.dataModels) - system.json (documentTypes) - modules/models/README.md Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
86 lines
2.8 KiB
Markdown
86 lines
2.8 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
|
|
|
|
### 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/
|