Drop sur un objet met dans le conteneur parent
Augmenter la zone pour lacher un objet: * si c'est un objet similaire, on regroupe * si c'est un conteneur: on met dans le conteneur * si c'est un objet dans un conteneur, on met dans le conteneur * si c'est un objet porté, on met dans les objets portés
This commit is contained in:
parent
7198eb621d
commit
0d2bb2d9a3
@ -1217,21 +1217,39 @@ export class RdDActor extends Actor {
|
||||
if (srcId != destId && itemId != destId) { // déplacement de l'objet
|
||||
const dest = this.getObjet(destId);
|
||||
const src = this.getObjet(srcId);
|
||||
// changer de conteneur
|
||||
if (this.conteneurPeutContenir(dest, item)) {
|
||||
await this.enleverDeConteneur(item, src, params.onEnleverConteneur);
|
||||
await this.ajouterDansConteneur(item, dest, params.onAjouterDansConteneur);
|
||||
}
|
||||
else if (dest?.isEquipementSimilaire(item)) {
|
||||
if (dest?.isEquipementSimilaire(item)) {
|
||||
await this.regrouperEquipementsSimilaires(item, dest);
|
||||
result = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
const cible = this.getContenantOrParent(dest);
|
||||
// changer de conteneur
|
||||
if (cible == undefined) {
|
||||
await this.enleverDeConteneur(item, src, params.onEnleverConteneur);
|
||||
}
|
||||
else if (this.conteneurPeutContenir(cible, item)) {
|
||||
await this.enleverDeConteneur(item, src, params.onEnleverConteneur);
|
||||
await this.ajouterDansConteneur(item, cible, params.onAjouterDansConteneur);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
await this.computeEncombrementTotalEtMalusArmure();
|
||||
return result;
|
||||
}
|
||||
|
||||
getContenantOrParent(dest) {
|
||||
if (!dest || dest.isConteneur()) {
|
||||
return dest;
|
||||
}
|
||||
return this.getContenant(dest);
|
||||
}
|
||||
|
||||
getContenant(item) {
|
||||
return this.items.find(it => it.isConteneur() && Misc.templateData(it).contenu.includes(item.id));
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
conteneurPeutContenir(dest, item) {
|
||||
if (!dest) {
|
||||
|
Loading…
Reference in New Issue
Block a user