| | |
| | | |
| | | const [curSprite, setCurSprite] = useState(null); |
| | | const prevCurSpriteRef = useRef(); |
| | | const [spriteSettings, setSpriteSettings] = useState(null); |
| | | const prevSpriteSettingsRef = useRef(); |
| | | const [batchSprites, setBatchSprites] = useState([]); |
| | | |
| | | const [curZone, setCurZone] = useState(() => { |
| | |
| | | setBatchSelectionVisible(false); |
| | | |
| | | setCurSprite(null); |
| | | setSpriteSettings(null); |
| | | setBatchSprites([]); |
| | | |
| | | switch (mode) { |
| | |
| | | }); |
| | | |
| | | mapContainer.children.forEach(child => { |
| | | Tool.beSettings(child, setSpriteSettings); |
| | | Tool.beSettings(child, setCurSprite); |
| | | }) |
| | | break |
| | | default: |
| | |
| | | Tool.showSelectedEffect(curSprite) |
| | | setInsightVisible(true) |
| | | } |
| | | if (mode === MAP_MODE.SETTINGS_MODE) { |
| | | Tool.showSelectedEffect(curSprite) |
| | | setSettingsVisible(true) |
| | | } |
| | | } else { |
| | | Tool.removeSelectedEffect(); |
| | | } |
| | | }, [curSprite]); |
| | | const prevCurSprite = prevCurSpriteRef.current; |
| | | |
| | | // watch spriteSettings |
| | | useEffect(() => { |
| | | if (!mapContainer) { |
| | | return; |
| | | } |
| | | prevSpriteSettingsRef.current = spriteSettings; |
| | | if (spriteSettings && prevSpriteSettings !== spriteSettings) { |
| | | Tool.removeSelectedEffect(); |
| | | } |
| | | if (spriteSettings) { |
| | | Tool.showSelectedEffect(spriteSettings) |
| | | setSettingsVisible(true); |
| | | } else { |
| | | Tool.removeSelectedEffect(); |
| | | } |
| | | }, [spriteSettings, mapContainer]) |
| | | const prevSpriteSettings = prevSpriteSettingsRef.current; |
| | | |
| | | // watch batchSprites |
| | | React.useEffect(() => { |
| | |
| | | curZone={curZone} |
| | | curSprite={curSprite} |
| | | setCurSprite={setCurSprite} |
| | | spriteSettings={spriteSettings} |
| | | setSpriteSettings={setSpriteSettings} |
| | | /> |
| | | <Box sx={{ flexGrow: 1 }} /> |
| | | |
| | |
| | | <Settings |
| | | open={settingsVisible} |
| | | onCancel={() => { |
| | | setSpriteSettings(null); |
| | | setCurSprite(null); |
| | | setSettingsVisible(false); |
| | | }} |
| | | sprite={spriteSettings} |
| | | setSpriteSettings={setSpriteSettings} |
| | | sprite={curSprite} |
| | | setSpriteSettings={setCurSprite} |
| | | width={570} |
| | | /> |
| | | |