| | |
| | | this.mapContainer = generatePixiContainer('mapContainer'); |
| | | this.app.stage.addChild(this.mapContainer); |
| | | |
| | | // this.activateMapEvent(null); |
| | | this.activateMapScale(); |
| | | this.activateMapPan(); |
| | | this.showCoordinates(); |
| | | this.getStartedTicker(); |
| | | } |
| | | |
| | | activateMapEvent = (eventType, mapModel) => { |
| | | activateMapEvent = (eventType, fn) => { |
| | | if (this.mapEvent) { |
| | | this.mapContainer.parent.off('mousedown'); |
| | | this.mapEvent = null; |
| | |
| | | if (eventType && event.button === 0) { |
| | | switch (eventType) { |
| | | case Utils.MapEvent.SELECTION_BOX: |
| | | this.mapSelect(event, mapModel); |
| | | this.mapSelect(event, fn); |
| | | break |
| | | default: |
| | | break |
| | |
| | | this.mapContainer.parent.on('mousedown', this.mapEvent) |
| | | } |
| | | |
| | | mapSelect = (event, mapModel) => { |
| | | mapSelect = (event, fn) => { |
| | | let isSelecting = false; |
| | | if (!this.selectionBox) { |
| | | this.selectionBox = new PIXI.Graphics(); |
| | |
| | | |
| | | this.mapContainer.parent.on('mouseup', (event) => { |
| | | if (isSelecting) { |
| | | // sprite show style which be selected |
| | | if (this.selectedSprites && this.selectedSprites.length > 0) { |
| | | this.selectedSprites.forEach(child => { |
| | | Utils.unMarkSprite(child); |
| | |
| | | } |
| | | this.selectedSprites = []; |
| | | |
| | | // sprite show style which be selected |
| | | this.mapContainer.children.forEach(child => { |
| | | if (Utils.isSpriteInSelectionBox(child, this.selectionBox)) { |
| | | this.selectedSprites.push(child); |
| | |
| | | isSelecting = false; |
| | | this.selectionBox.clear(); |
| | | |
| | | // sprites batch move |
| | | Utils.spriteListBeMovable(this.selectedSprites, this.scale, () => { |
| | | this.activateMapEvent(Utils.MapEvent.SELECTION_BOX, mapModel); |
| | | }); |
| | | // after selectbox complete |
| | | if (fn) { |
| | | fn(this.selectedSprites, () => { |
| | | // trigger at end of selectionBox when fn happen mouseup |
| | | this.selectedSprites = []; |
| | | this.activateMapEvent(Utils.MapEvent.SELECTION_BOX, fn); |
| | | }); |
| | | } |
| | | |
| | | } |
| | | |