Skip to content

Glisser-déposer des objets depuis les fiches d'acteur (#535) - #537

Open
DjamZee wants to merge 1 commit into
shadowfoundry:feat/v13from
DjamZee:fix/535-item-drag-from-actor-sheet
Open

DjamZee wants to merge 1 commit into
shadowfoundry:feat/v13from
DjamZee:fix/535-item-drag-from-actor-sheet

Conversation

@DjamZee

@DjamZee DjamZee commented Sep 16, 2026

Copy link
Copy Markdown

Description

Closes #535

En V13, les objets d'une fiche d'acteur ne peuvent plus être glissés ailleurs : ni dans le chat, ni dans un dossier de l'onglet Objets, ni sur une autre fiche. Le « grab » est possible mais rien ne se passe au dépôt, sans erreur console. En V12 ça fonctionnait (donner des nuyens, du karma, récupérer un véhicule/esprit/sprite avec son image de token, etc.).

Deux causes :

  1. Aucune donnée de drag. En V12, activateListeners rendait chaque li.item draggable et branchait _onDragStart. En AppV2, ActorSheetV2 ne branche son DragDrop que sur .draggable, classe absente des templates SR5. Les lignes d'objets ne transmettaient donc rien.
  2. L'onglet Objets ignore le dépôt. Quand un objet du monde est déposé sur un acteur, le core V13 le crée avec keepId. L'objet possédé a donc le même id que l'objet du monde d'origine. Au dépôt dans l'onglet Objets, DocumentDirectory#_entryAlreadyExists le considère comme déjà présent et se contente de le trier : aucune copie n'est créée.

Changes

  • modules/entities/actors/baseSheet.js : pour le propriétaire, les li.item[data-item-id] qui correspondent à un vrai objet de l'acteur redeviennent draggables, avec un nouveau _onDragItemStart qui envoie item.toDragData(). Les drags spécifiques SR5 (compétences, actions matricielles/résonance, attributs matriciels) et les lignes imbriquées ne sont pas touchés.
  • modules/interface/sr-item-directory.js (nouveau) : SR5ItemDirectory étend ItemDirectory et surcharge _entryAlreadyExists pour toujours importer un objet embarqué comme nouvel objet du monde.
  • modules/hooks/init.js : CONFIG.ui.items = SR5ItemDirectory, sur le même modèle que CONFIG.ui.combat.

Checklist

  • npm test passes
  • npx eslint modules/ passes (or only pre-existing warnings)
  • npm run build:css compiles without errors
  • Language keys match in en.json and fr.json (if localization was touched) — non concerné
  • No console.log left in code

Testé dans Foundry 13.351 avec le système 13.0.0-alpha.25 : drag d'un objet de fiche PJ vers le chat (lien inséré) et vers un dossier de l'onglet Objets (copie créée avec ses modifications, dont l'image de token d'un véhicule).

Screenshots

Pas de changement visuel : le glisser-déposer fonctionne de nouveau comme en V12.

🤖 Generated with Claude Code

ActorSheetV2 only binds drag handlers to `.draggable`, so owned item rows
no longer provided drag data: dropping them on the chat, the Items
directory or another sheet did nothing. Bind dragstart on owned item rows
again, as the v12 sheet did.

Owned items keep the id of the world item they came from, so the Items
directory saw them as already existing and only re-sorted them. Add an
SR5ItemDirectory that always imports embedded items as new world items.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant