From 8f883bc7615a133638b7dbf93e2109cd94cd5fca Mon Sep 17 00:00:00 2001 From: Bill Date: Wed, 21 Jul 2021 05:31:36 -0400 Subject: [PATCH] More updates --- .../images/avatareditor/sellable-icon.png | Bin 0 -> 229 bytes src/assets/styles/icons.scss | 6 + src/assets/styles/utils.scss | 16 --- src/views/avatar-editor/AvatarEditorView.tsx | 108 +++++++++++------- .../common/AvatarEditorUtilities.ts | 18 +-- .../AvatarEditorFigureSetItemView.tsx | 3 +- .../shared/currency-icon/CurrencyIcon.tsx | 17 ++- .../currency-icon/CurrencyIcon.types.ts | 4 +- 8 files changed, 98 insertions(+), 74 deletions(-) create mode 100644 src/assets/images/avatareditor/sellable-icon.png diff --git a/src/assets/images/avatareditor/sellable-icon.png b/src/assets/images/avatareditor/sellable-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4485b518d621e02512948def4dbb4317a75a2989 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^f = props => const [ figureData, setFigureData ] = useState(null); const [ categories, setCategories ] = useState>(null); const [ activeCategory, setActiveCategory ] = useState(null); + const [ figureSetIds, setFigureSetIds ] = useState([]); + const [ boundFurnitureNames, setBoundFurnitureNames ] = useState([]); const [ lastFigure, setLastFigure ] = useState(null); const [ lastGender, setLastGender ] = useState(null); const [ needsReset, setNeedsReset ] = useState(false); const [ isInitalized, setIsInitalized ] = useState(false); + const onAvatarEditorEvent = useCallback((event: AvatarEditorEvent) => + { + switch(event.type) + { + case AvatarEditorEvent.SHOW_EDITOR: + setIsVisible(true); + setNeedsReset(true); + return; + case AvatarEditorEvent.HIDE_EDITOR: + setIsVisible(false); + return; + case AvatarEditorEvent.TOGGLE_EDITOR: + setIsVisible(prevValue => + { + const flag = !prevValue; + + if(flag) setNeedsReset(true); + + return flag; + }); + return; + } + }, []); + + useUiEvent(AvatarEditorEvent.SHOW_EDITOR, onAvatarEditorEvent); + useUiEvent(AvatarEditorEvent.HIDE_EDITOR, onAvatarEditorEvent); + useUiEvent(AvatarEditorEvent.TOGGLE_EDITOR, onAvatarEditorEvent); + const selectCategory = useCallback((name: string) => { if(!categories) return; @@ -87,34 +117,6 @@ export const AvatarEditorView: FC = props => } }, [ figures, figureData ]); - const onAvatarEditorEvent = useCallback((event: AvatarEditorEvent) => - { - switch(event.type) - { - case AvatarEditorEvent.SHOW_EDITOR: - setIsVisible(true); - setNeedsReset(true); - return; - case AvatarEditorEvent.HIDE_EDITOR: - setIsVisible(false); - return; - case AvatarEditorEvent.TOGGLE_EDITOR: - setIsVisible(prevValue => - { - const flag = !prevValue; - - if(flag) setNeedsReset(true); - - return flag; - }); - return; - } - }, []); - - useUiEvent(AvatarEditorEvent.SHOW_EDITOR, onAvatarEditorEvent); - useUiEvent(AvatarEditorEvent.HIDE_EDITOR, onAvatarEditorEvent); - useUiEvent(AvatarEditorEvent.TOGGLE_EDITOR, onAvatarEditorEvent); - const clearFigure = useCallback(() => { loadAvatarInEditor(figureData.getFigureStringWithFace(0, false), figureData.gender, false); @@ -145,6 +147,7 @@ export const AvatarEditorView: FC = props => const saveFigure = useCallback(() => { SendMessageHook(new UserFigureComposer(figureData.gender, figureData.getFigureString())); + setIsVisible(false); }, [ figureData ]); const setGender = useCallback((gender: string) => @@ -154,6 +157,18 @@ export const AvatarEditorView: FC = props => setFigureData(figures.get(gender)); }, [ figures ]); + const onFigureSetIdsMessageEvent = useCallback((event: FigureSetIdsMessageEvent) => + { + const parser = event.getParser(); + + setFigureSetIds(parser.figureSetIds); + setBoundFurnitureNames(parser.boundsFurnitureNames); + + resetCategories(); + }, [ resetCategories ]); + + CreateMessageHook(FigureSetIdsMessageEvent, onFigureSetIdsMessageEvent); + useEffect(() => { if(!categories) return; @@ -172,6 +187,18 @@ export const AvatarEditorView: FC = props => return () => AvatarEditorUtilities.CURRENT_FIGURE = null; }, [ figureData, resetCategories ]); + useEffect(() => + { + AvatarEditorUtilities.FIGURE_SET_IDS = figureSetIds; + AvatarEditorUtilities.BOUND_FURNITURE_NAMES = boundFurnitureNames; + + return () => + { + AvatarEditorUtilities.FIGURE_SET_IDS = null; + AvatarEditorUtilities.BOUND_FURNITURE_NAMES = null; + } + }, [ figureSetIds, boundFurnitureNames ]); + useEffect(() => { if(!isVisible) return; @@ -194,7 +221,7 @@ export const AvatarEditorView: FC = props => setNeedsReset(false); }, [ isVisible, isInitalized, needsReset, loadAvatarInEditor ]); - if(!isVisible) return null; + if(!isVisible || !figureData) return null; return ( @@ -215,16 +242,15 @@ export const AvatarEditorView: FC = props => { activeCategory && }
- { figureData && -
- -
-
-
- rotateFigure(figureData.direction + 1) } /> - rotateFigure(figureData.direction - 1) } /> -
-
} +
+ +
+
+
+ rotateFigure(figureData.direction + 1) } /> + rotateFigure(figureData.direction - 1) } /> +
+