Files
fvtt-ecryme/modules/models/README.md
LeRatierBretonnier f130f24a23 Migration complète vers DataModels Foundry VTT
- 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>
2026-02-18 11:32:29 +01:00

3.0 KiB

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 :

// 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

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/