| | |
| | | return { mapX: mapPoint.x, mapY: mapPoint.y }; |
| | | } |
| | | |
| | | export const generateSprite = (deviceType, texture) => { |
| | | export const generateSprite = (deviceType, texture, agvModel) => { |
| | | let sprite; |
| | | switch (deviceType) { |
| | | case DEVICE_TYPE.SHELF: |
| | |
| | | if (texture) { |
| | | sprite = new PIXI.Sprite(PIXI.Texture.from(texture, { resourceOptions: { scale: 1 } })); |
| | | } |
| | | sprite.width = 750; |
| | | sprite.height = 1300; |
| | | sprite.zIndex = DEVICE_Z_INDEX.AGV; |
| | | |
| | | // // sprite.width = 750; |
| | | // // sprite.height = 1300; |
| | | // sprite.zIndex = DEVICE_Z_INDEX.AGV; |
| | | // sprite.scale.set(12, 10) |
| | | if (agvModel === 'HEAVY_LOAD_STACKING_ROBOT') { |
| | | sprite.scale.set(13, 11); |
| | | } else { |
| | | sprite.width = 750; |
| | | sprite.height = 1300; |
| | | } |
| | | break |
| | | case DEVICE_TYPE.POINT: |
| | | sprite = new PIXI.Sprite(PIXI.Texture.from(point, { resourceOptions: { scale: 1 } })); |
| | |
| | | } |
| | | } |
| | | |
| | | export const generateAgvSpriteTexture = (agvStatusMode) => { |
| | | switch (agvStatusMode) { |
| | | case AGV_STATUS_MODE.EMPTY_NO_BATTERY: |
| | | return ctuEmptyNoBattery; |
| | | case AGV_STATUS_MODE.EMPTY_HALF_BATTERY: |
| | | return ctuEmptyHalfBattery; |
| | | case AGV_STATUS_MODE.EMPTY_FULL_BATTERY: |
| | | return ctuEmptyFullBattery; |
| | | case AGV_STATUS_MODE.LOADED_NO_BATTERY: |
| | | return ctuLoadedNoBattery; |
| | | case AGV_STATUS_MODE.LOADED_HALF_BATTERY: |
| | | return ctuLoadedHalfBattery; |
| | | case AGV_STATUS_MODE.LOADED_FULL_BATTERY: |
| | | return ctuLoadedFullBattery; |
| | | default: |
| | | return; |
| | | export const generateAgvSpriteTexture = (agvModel, agvStatusMode) => { |
| | | if (!agvModel) { |
| | | console.error("failed to load agv model"); |
| | | return; |
| | | } |
| | | if (agvModel === 'HEAVY_LOAD_STACKING_ROBOT') { |
| | | switch (agvStatusMode) { |
| | | case AGV_STATUS_MODE.EMPTY_NO_BATTERY: |
| | | return ASREmptyNoBattery; |
| | | case AGV_STATUS_MODE.EMPTY_HALF_BATTERY: |
| | | return ASREmptyHalfBattery; |
| | | case AGV_STATUS_MODE.EMPTY_FULL_BATTERY: |
| | | return ASREmptyFullBattery; |
| | | case AGV_STATUS_MODE.LOADED_NO_BATTERY: |
| | | return ASRLoadedNoBattery; |
| | | case AGV_STATUS_MODE.LOADED_HALF_BATTERY: |
| | | return ASRLoadedHalfBattery; |
| | | case AGV_STATUS_MODE.LOADED_FULL_BATTERY: |
| | | return ASRLoadedFullBattery; |
| | | default: |
| | | return; |
| | | } |
| | | } else { |
| | | switch (agvStatusMode) { |
| | | case AGV_STATUS_MODE.EMPTY_NO_BATTERY: |
| | | return ctuEmptyNoBattery; |
| | | case AGV_STATUS_MODE.EMPTY_HALF_BATTERY: |
| | | return ctuEmptyHalfBattery; |
| | | case AGV_STATUS_MODE.EMPTY_FULL_BATTERY: |
| | | return ctuEmptyFullBattery; |
| | | case AGV_STATUS_MODE.LOADED_NO_BATTERY: |
| | | return ctuLoadedNoBattery; |
| | | case AGV_STATUS_MODE.LOADED_HALF_BATTERY: |
| | | return ctuLoadedHalfBattery; |
| | | case AGV_STATUS_MODE.LOADED_FULL_BATTERY: |
| | | return ctuLoadedFullBattery; |
| | | default: |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // export const generateAgvSpriteTexture = (agvStatusMode) => { |
| | | // switch (agvStatusMode) { |
| | | // case AGV_STATUS_MODE.EMPTY_NO_BATTERY: |
| | | // return ASREmptyNoBattery; |
| | | // case AGV_STATUS_MODE.EMPTY_HALF_BATTERY: |
| | | // return ASREmptyHalfBattery; |
| | | // case AGV_STATUS_MODE.EMPTY_FULL_BATTERY: |
| | | // return ASREmptyFullBattery; |
| | | // case AGV_STATUS_MODE.LOADED_NO_BATTERY: |
| | | // return ASRLoadedNoBattery; |
| | | // case AGV_STATUS_MODE.LOADED_HALF_BATTERY: |
| | | // return ASRLoadedHalfBattery; |
| | | // case AGV_STATUS_MODE.LOADED_FULL_BATTERY: |
| | | // return ASRLoadedFullBattery; |
| | | // default: |
| | | // return; |
| | | // } |
| | | // } |
| | | |
| | | export function createAgvJobPanel(parentContainer, text) { |
| | | const panelScale = 4; |
| | |
| | | const agvRotationOffset = rotationParseNum(AGV_ANGLE_OFFSET_VAL); |
| | | |
| | | const showAgvSprite = (curZone, agvVo, setCurSprite) => { |
| | | const { agvNo, code, direction, battery, jobType, backpack: backpackCount, slots, error } = agvVo; |
| | | const { agvNo, agvModel, code, direction, battery, jobType, backpack: backpackCount, slots, error } = agvVo; |
| | | if (!code) { return; } |
| | | const codeSprite = querySprite(DEVICE_TYPE.POINT, code); |
| | | if (!codeSprite) { return; } |
| | |
| | | let agvSprite = querySprite(DEVICE_TYPE.AGV, agvNo); |
| | | if (!agvSprite) { |
| | | const agvStatusMode = getAgvStatusMode(backpackCount, battery); |
| | | const agvTexture = generateAgvSpriteTexture(agvStatusMode); |
| | | agvSprite = generateSprite(DEVICE_TYPE.AGV, agvTexture); |
| | | const agvTexture = generateAgvSpriteTexture(agvModel, agvStatusMode); |
| | | agvSprite = generateSprite(DEVICE_TYPE.AGV, agvTexture, agvModel); |
| | | |
| | | initSprite(agvSprite, DEVICE_TYPE.AGV); |
| | | |
| | |
| | | }); |
| | | agvText.anchor.set(0.5, 0.5); |
| | | agvText.position.set(0, 8); |
| | | // agvText.position.set(0, 18); |
| | | if (agvModel === 'HEAVY_LOAD_STACKING_ROBOT') { |
| | | agvText.position.set(0, 20); |
| | | } |
| | | agvText.scale.set(MAP_MIRROR ? -1 : 1, 1) |
| | | agvSprite.addChild(agvText); |
| | | |