diff --git a/src/components/ConcernementMapItem.vue b/src/components/ConcernementMapItem.vue index db3ab2c..ec04310 100644 --- a/src/components/ConcernementMapItem.vue +++ b/src/components/ConcernementMapItem.vue @@ -544,6 +544,9 @@ export default { this.addNewPaperSymbolInstance('boussole_bg', true); this.paper_main_object.addChild(this.setPaperEntites()); break; + case 'superposition': + this.addNewPaperSymbolInstance('boussole_bg', true); + break; case 'puissancedagir': this.addNewPaperSymbolInstance('puissanceagir_bg', true); this.paper_main_object.addChild(this.setPaperPuissanceagirBesoins()); @@ -1129,13 +1132,30 @@ export default { this.paper_main_object.children.agissantes_icons.visible = false; } } - }, - handlePaperVisibilityOnOpened(){ - + // superposition + // scale down superposed entites on open + let entites_superposes = this.paper_main_object.children['entites_superposes']; + // console.log('entites_superposes.children', entites_superposes.children); + if(entites_superposes){ + for(let paper_item of entites_superposes.children) { + // paper_item.definition = this.paper_symbol_definitions.entite_hover; + paper_item.scale(0.25) + } + } }, + handlePaperVisibilityOnOpened(){}, handlePaperVisibilityOnBeforeClose(){ - + // superposition + // scale up superposed entites on open + let entites_superposes = this.paper_main_object.children['entites_superposes']; + // console.log('entites_superposes.children', entites_superposes.children); + if(entites_superposes){ + for(let paper_item of entites_superposes.children) { + // paper_item.definition = this.paper_symbol_definitions.entite_hover; + paper_item.scale(4) + } + } }, handlePaperVisibilityOnClosed(){ // agissantes @@ -1147,9 +1167,7 @@ export default { } } }, - handlePaperVisibilityOnMapMode(){ - - }, + handlePaperVisibilityOnMapMode(){}, handlePaperVisibilityOnAfterEnginUpdate(){ // contours focused if (!this.isFocused()){ @@ -1283,9 +1301,7 @@ export default { // console.log(`onmousemove ${this.id}`); // prevent hover map item mouse event if cartouch is opened - if (this.cartouch_is_open) { - return; - } + if (this.cartouch_is_open) return; if (!this.is_open) { if (!this.opened_concernement && this.isFocused()) { // only if no concernement is opened and is this focused @@ -1316,6 +1332,9 @@ export default { case "terraindevie": paper_group_tohit = this.paper_main_object.children['entites']; break; + case "superposition": + paper_group_tohit = this.paper_main_object.children['entites_superposes']; + break; case "action": paper_group_tohit = this.paper_main_object.children['agissantes']; break; @@ -1363,11 +1382,12 @@ export default { this.paper_main_object.onClick = function(event){ console.log('paper concernement onClick'); - + // prevent hover map item mouse event if cartouch is opened if (this.cartouch_is_open) return; if (!this.is_open) { // si ce concernement n'est pas ouvet + console.log('mapitem is NOT opened'); if (!this.opened_concernement) { // si aucun concernement n'est ouvert console.log(`Open me ${this.id}`); // open/close all concernements @@ -1382,12 +1402,16 @@ export default { this.resetHoverElmt(); } } else { // si ce concernement est ouvert + console.log('mapitem is opened'); // lets define some options regarding the map_mode let group_to_hit = null; switch (this.map_mode) { case "terraindevie": group_to_hit = this.paper_main_object.children['entites']; break; + case "superposition": + group_to_hit = this.paper_main_object.children['entites_superposes']; + break; case "action": group_to_hit = this.paper_main_object.children['agissantes']; break; @@ -1401,6 +1425,7 @@ export default { if (result) { switch (this.map_mode) { case "terraindevie": + case "superposition": case "action": // we have clicked on an entite this.$router.push({ @@ -1443,8 +1468,6 @@ export default { } if (open) { this.is_opening = true; - // paper bring to front - this.paper_main_object.bringToFront(); // create the paper objects to display (like entite, besoin, etc) this.setPaperContents(); this.handlePaperVisibilityOnBeforeOpen(); @@ -1454,8 +1477,7 @@ export default { // let s = this.canvas.height / (this.ray*2.8) let s = Math.min(this.canvas.height, this.canvas.width - this.cartouch_width) / (this.ray*2.8) - - // opening tweening + // create once the opening tweening this.tween = new Tween.Tween({s: this.scale, x: this.pos.x, y: this.pos.y, o: 0}) .to({ s: s, @@ -1472,7 +1494,7 @@ export default { Matter.Body.scale(this.body, obj.s, obj.s) this.paper_main_object.scale(obj.s); - // update superposition constraints points + // update superposition constraints points poisitions if (this.concernement.superposition_constraints_id && this.concernement.superposition_constraints_id[this.id] && this.concernement.superposition_constraints_id[this.id].length) @@ -1531,7 +1553,8 @@ export default { }); Matter.Composite.add(this.matterEngine.world, [this.body, this.constraint]); - + // paper bring to front + this.paper_main_object.bringToFront(); this.is_opening = false; }); @@ -1552,6 +1575,7 @@ export default { // this.setOpenedRecit(null); + // create once the closing tween this.tween = new Tween.Tween({s: this.scale, o: 1}) .to({s: 1, o: 0}, 500) .onUpdate((obj) => { @@ -1563,7 +1587,7 @@ export default { Matter.Body.scale(this.body, obj.s, obj.s) this.paper_main_object.scale(obj.s); - // update superposition constraints points + // update superposition constraints points positions if (this.concernement.superposition_constraints_id && this.concernement.superposition_constraints_id[this.id] && this.concernement.superposition_constraints_id[this.id].length) @@ -1623,7 +1647,8 @@ export default { // this.opened_concernement.id !== this.cid && this.opened_concernement.opened_mapitem_id !== this.id // && (!this.opened_concernement.all_superposed_concernements_id || this.opened_concernement.all_superposed_concernements_id.indexOf(this.id) < 0) - && (!this.opened_concernement.superposed_mapitem_id_by_mapitem_id[this.opened_concernement.opened_mapitem_id] // when we are not in superposition mode + && (!this.opened_concernement.superposed_mapitem_id_by_mapitem_id + || !this.opened_concernement.superposed_mapitem_id_by_mapitem_id[this.opened_concernement.opened_mapitem_id] // when we are not in superposition mode || this.opened_concernement.superposed_mapitem_id_by_mapitem_id[this.opened_concernement.opened_mapitem_id].indexOf(this.id) < 0) // this mapitem is not superposed to the opened mapitem ) { this.pushAside() @@ -1952,7 +1977,8 @@ export default { || this.pos.y >= this.canvas.height){ this.pos = this.getRandomPos() Matter.Body.setPosition(this.body, {x:this.pos.x, y:this.pos.y}); - this.setInitBodyVelocity(); + // this.setInitBodyVelocity(); + Matter.Body.setVelocity(this.body, {x:0,y:0}); } }, diff --git a/src/components/ConcernementMapPopup.vue b/src/components/ConcernementMapPopup.vue index fa5b275..0dc3561 100644 --- a/src/components/ConcernementMapPopup.vue +++ b/src/components/ConcernementMapPopup.vue @@ -56,6 +56,7 @@ export default { this.concernement = this.concernementsByID[this.infos.cid]; break; case 'entite': + case 'entite_superpose': case 'entite_action': this.entites = [this.allEntitesById[this.infos.id]]; break; @@ -148,7 +149,7 @@ export default { -
+