import { RdDBaseActorSheet } from "./actor/base-actor-sheet.js"; import { RdDItemSheet } from "./item-sheet.js"; import { RdDSheetUtility } from "./rdd-sheet-utility.js"; import { RdDUtility } from "./rdd-utility.js"; export class RdDConteneurItemSheet extends RdDItemSheet { static get ITEM_TYPE() { return "conteneur" }; async getData() { const formData = await super.getData(); if (this.actor) { this.prepareConteneurData(formData); } return formData; } activateListeners(html) { super.activateListeners(html); if (!this.options.editable) return; this.html.find('.conteneur-name a').click(async event => { RdDUtility.toggleAfficheContenu(RdDSheetUtility.getItemId(event)); this.render(true); }); } /* -------------------------------------------- */ prepareConteneurData(formData) { RdDBaseActorSheet.filterItemsPerTypeForSheet(formData, this.actor.itemTypes); this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.objets); formData.subItems = formData.conteneurs.find(it => it._id == this.item.id)?.subItems; } async _onDragStart(event) { console.log("_onDragStart", event); if (event.target.classList.contains("entity-link")) return; const itemId = event.srcElement?.attributes["data-item-id"].value; const item = this.actor.items.get(itemId); // Create drag data const dragData = { actorId: this.actor.id, type: "Item", data: item.system }; event.dataTransfer.setData("text/plain", JSON.stringify(dragData)); } async _onDropItem(event, dragData) { if (this.actor) { const dropParams = await RdDSheetUtility.prepareItemDropParameters(this.item.id, this.actor, dragData, this.objetVersConteneur); await this.actor.processDropItem(dropParams); await this.render(true); } } }