| | |
| | | } |
| | | |
| | | // sprite be beSettings from sprite click event |
| | | export const beSettings = (sprite, setSpriteBySettings, setDidClickSprite) => { |
| | | export const beSettings = (sprite, setSpriteBySettings) => { |
| | | sprite.off('pointerup'); |
| | | sprite.off('pointermove'); |
| | | sprite.off('pointerdown'); |
| | |
| | | |
| | | function onClick(event) { |
| | | setSpriteBySettings(sprite); |
| | | // setDidClickSprite(true); |
| | | } |
| | | } |
| | | |
| | | // sprites be movable from select box |
| | | // the scale was dynamic |
| | | export const spriteListBeMovable = (selectedSprites, scale, resetFn) => { |
| | | export const spriteListBeMovable = (selectedSprites, resetFn) => { |
| | | if (selectedSprites && selectedSprites.length > 0) { |
| | | let batchMove = false; |
| | | let batchMoveStartPos = null; |
| | | |
| | | const batchMoving = (event) => { |
| | | const scale = mapContainer.scale.x; |
| | | if (batchMove && batchMoveStartPos) { |
| | | // offset move val |
| | | var mouseMovement = { |
| | |
| | | y: (event.global.y - batchMoveStartPos.y) / scale |
| | | }; |
| | | for (let sprite of selectedSprites) { |
| | | sprite.position.x = sprite.data.batchMoveStartPos.x + mouseMovement.x; |
| | | sprite.position.y = sprite.data.batchMoveStartPos.y + mouseMovement.y; |
| | | sprite.position.x = sprite.batchMoveStartPos.x + mouseMovement.x; |
| | | sprite.position.y = sprite.batchMoveStartPos.y + mouseMovement.y; |
| | | } |
| | | } |
| | | } |
| | |
| | | mapContainer.parent.off('mousemove'); |
| | | mapContainer.parent.off('mouseup'); |
| | | |
| | | resetFn(); |
| | | if (resetFn) { |
| | | resetFn(); |
| | | } |
| | | } |
| | | |
| | | const batchMoveStart = (event) => { |
| | | batchMoveStartPos = { x: event.data.global.clone().x, y: event.data.global.clone().y }; |
| | | selectedSprites.forEach(child => { |
| | | child.data.batchMoveStartPos = { x: child.position.x, y: child.position.y }; |
| | | child.batchMoveStartPos = { x: child.position.x, y: child.position.y }; |
| | | }) |
| | | |
| | | batchMove = true; |
| | |
| | | return options; |
| | | } |
| | | |
| | | export const fetchMapData = async (intl) => { |
| | | export const fetchMapData = async (curFloor) => { |
| | | clearMapData(); |
| | | await Http.doPostPromise('api/map/list', {}, (res) => { |
| | | const mapItemList = res.data.itemList; |
| | | await Http.doPostPromise('api/map/list', { floor: curFloor }, (res) => { |
| | | const mapItemList = eval(res.data); |
| | | mapItemList.forEach(item => { |
| | | let sprite; |
| | | switch (item.type) { |
| | |
| | | |
| | | } |
| | | |
| | | export const saveMapData = async (intl) => { |
| | | export const saveMapData = async (intl, floor) => { |
| | | if (!mapContainer) { |
| | | return; |
| | | } |
| | |
| | | }) |
| | | |
| | | const closeLoading = message.loading({ content: intl.formatMessage({ id: 'common.loading.api.message', defaultMessage: '等待服务器......' }), duration: API_TIMEOUT }); |
| | | await Http.doPostPromise('api/map/save', { itemList: mapItemList }, (res) => { |
| | | await Http.doPostPromise('api/map/save', { |
| | | itemList: mapItemList, |
| | | floor: floor |
| | | }, (res) => { |
| | | closeLoading(); |
| | | }).catch((error) => { |
| | | closeLoading(); |