#123 : Verification equipement
This commit is contained in:
@ -657,6 +657,25 @@ export class RdDActor extends Actor {
|
||||
await this.update( {"data.attributs": attributs } );
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
validateConteneur( itemId, conteneurId ) {
|
||||
let conteneurDest = this.items.find( conteneur => conteneurId == conteneur._id); // recup conteneur
|
||||
let conteneurSrc = this.items.find( conteneur => itemId == conteneur._id && conteneur.type == 'conteneur');
|
||||
if ( conteneurSrc ) { // Si c'est un conteneur, il faut vérifier qu'on ne le déplace pas vers un sous-conteneur lui appartenant
|
||||
for (let id of conteneurSrc.data.data.contenu) {
|
||||
let subObjet = this.items.find( subobj => id == subobj._id);
|
||||
if ( subObjet && subObjet._id == conteneurDest._id ) {
|
||||
ui.notifications.warn("Impossible de déplacer un conteneur parent dans son fils !");
|
||||
return false; // Loop detected !
|
||||
}
|
||||
if ( subObjet && subObjet.type == 'conteneur') {
|
||||
return this.validateConteneur( subObjet._id, conteneurId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** Teste si le conteneur de destination a suffisament de capacité
|
||||
* pour recevoir le nouvel objet
|
||||
@ -673,8 +692,10 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
// Et gérer le nouvel objet
|
||||
let nouvelObjet = this.items.find( objet => (itemId == objet._id) );
|
||||
if ( currentEnc + nouvelObjet.data.data.encombrement > Number(conteneur.data.data.capacite) )
|
||||
if ( currentEnc + nouvelObjet.data.data.encombrement > Number(conteneur.data.data.capacite) ) {
|
||||
ui.notifications.warn("Capacité d'encombrement insuffisante dans le conteneur !");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user