From 64cd0bf215123297afd2122e076e3c8b694e8bfa Mon Sep 17 00:00:00 2001 From: MyNameIsBatman Date: Sat, 12 Jun 2021 18:11:15 -0300 Subject: [PATCH 1/5] Mannequin Room Widget --- src/assets/images/mannequin/background.png | Bin 5267 -> 0 bytes src/assets/images/mannequin/hc.png | Bin 363 -> 0 bytes .../lovelock-widget/lovelock-spritesheet.png | Bin 0 -> 39390 bytes .../mannequin-spritesheet.png | Bin 0 -> 5719 bytes src/assets/images/trophies/shine.png | Bin 3742 -> 0 bytes .../widgets/furniture/FurnitureWidgets.scss | 2 + .../FurnitureExchangeCreditView.scss | 3 + .../FurnitureExchangeCreditView.tsx | 2 +- .../mannequin/FurnitureMannequinData.ts | 11 + .../mannequin/FurnitureMannequinView.scss | 9 + .../mannequin/FurnitureMannequinView.tsx | 216 +++++++++++++++++- .../FurnitureMannequinView.types.tsx | 9 +- 12 files changed, 243 insertions(+), 9 deletions(-) delete mode 100644 src/assets/images/mannequin/background.png delete mode 100644 src/assets/images/mannequin/hc.png create mode 100644 src/assets/images/room-widgets/lovelock-widget/lovelock-spritesheet.png create mode 100644 src/assets/images/room-widgets/mannequin-widget/mannequin-spritesheet.png delete mode 100644 src/assets/images/trophies/shine.png create mode 100644 src/views/room/widgets/furniture/exchange-credit/FurnitureExchangeCreditView.scss create mode 100644 src/views/room/widgets/furniture/mannequin/FurnitureMannequinData.ts diff --git a/src/assets/images/mannequin/background.png b/src/assets/images/mannequin/background.png deleted file mode 100644 index e3c824a63de2e3649ddf204a0e6d8af9c4a60312..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5267 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 diff --git a/src/assets/images/mannequin/hc.png b/src/assets/images/mannequin/hc.png deleted file mode 100644 index 949f3d47e32584a05ce5496c70384a95689758e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/room-widgets/mannequin-widget/mannequin-spritesheet.png b/src/assets/images/room-widgets/mannequin-widget/mannequin-spritesheet.png new file mode 100644 index 0000000000000000000000000000000000000000..45e11f346dcf87cc6d35244e1940d23995ba07c0 GIT binary patch literal 5719 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 JPDHLkV1o8Ili&aV literal 0 HcmV?d00001 diff --git a/src/assets/images/trophies/shine.png b/src/assets/images/trophies/shine.png deleted file mode 100644 index 4f42c70adcba4ecf1c7abbfcad8f6b576d296280..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3742 zcmeHKZA@Eb6fOdV(Lzi3CL-Y;p>cMilg7r*}0@2RA`A+GH!>vBW!*jRw~t*)%p^N+TC%Z<(c zi6#B@i~feSj~%X_yeZ#-J}0p}-LJfoM6vQ}g4SP-Bxp55I?VMIq$4M28eP3JXw`xMi<$>Ehw={SxXwAH;!dP{HrS-M6ieS~mx8&wVzZgo*mm%vP}ALssAqC+bzF}bVNL+L2vnrlCemo&Zid*E zL)~zlMGQL96yjab*twPl1bVO^2sHTt5a{bsz^v+uK~B^yVXzs;q)meZ3e;-W9mS3N z^F^-YP?y-iLj$I70p*EAbfX0e;pq>b*u!Zf5RXWkfl)-lvq8#rVA^Ur_-RDI9I9(X z*oUbzI&Te+M>=&d8Yhv!DG&>*iM|n`9J?=?Y&Zp18^0HucT-zHWYWk6*0&)0TEZ8P z6DFxToL5CV&*5BxFSs99;Y-4!0C$U?sl)NJNE=4cpW!QU%xtO!zcj-J{yZ^YSBaJ7 zKA(W_O~k=J-l=2lq6+A9yF)!ZImmixeGG)r$L>7P+be<^cWtyM0%(8B6^+~1i2HjT zm)f#pdaUB;i4#aW`1^R`EE{DY9$sn@Wax@{H%N@R7c`1#gojQh1v+zeF9^~r0BZiI z7X<0oGFWD}UBgJ(n#==>M++eML&9h6Rw5X;lq>Z;1G3jg3$$(*oUJttW+Fbg6Pdda zNJMnBkPbV~K{z!?#b%N@Gw49ZytM)iv&Bq}??TmaN;n?II%`NMgY)M|g971OU#7Yqm3Hzya6X!xQNaF;WtsqAHEhwK_(B!244{=t&HzYnQd4l; zZd!T*_VlO=65Zz5Y;V~9x2GD05a)Ej8P-dLZ)W4QvuLyaz^4Ppd3;CnzJ}ehOq-9w z8}cpF=4AMvJ0_b|12ZQmDa}+2-ivZ>J-lHRBagj@k5fJ$#;Ul$e=3sj1rKRUVCvTJ z=FT8m)FS0pWE?jacvfWE_gc!?#nU3KKC2`&XZXY6XS|?8_Vavs*xtpX3t#Z;-Pu64 zNX`Wnvq)|#G5$A%M<%|gVCNetpSX%o+F0*RAqBhR4IMHM3;t#(Z638OefK+b@eFO~ z7rmk^gzg}1sYbEt6%Ky%kW42Eh;~G1zGlx5<>1nMAhm`?cit$b54$t70TnhUGoDsJ zK`R>MB4(i&#dLM>hbvd%X6?zGv?rpNORO~(O`)9Yo31{KA_n()3YuaEuj8Iasd{N4 z8;xlW)pE}O(znD0z6e{_{$_m|Tb*Vn{sicM3AFIE3O)h6_lL2*mZt&tZpZ-J_{k|u z%zbjCtF8(Ae*u = pro if(!exchangeCreditData) return null; return ( - + processAction('close') } />
diff --git a/src/views/room/widgets/furniture/mannequin/FurnitureMannequinData.ts b/src/views/room/widgets/furniture/mannequin/FurnitureMannequinData.ts new file mode 100644 index 00000000..10928618 --- /dev/null +++ b/src/views/room/widgets/furniture/mannequin/FurnitureMannequinData.ts @@ -0,0 +1,11 @@ +export class FurnitureMannequinData +{ + constructor( + public objectId: number, + public category: number, + public name: string, + public figure: string, + public gender: string, + public clubLevel: number, + public renderedFigure: string = null) {} +} diff --git a/src/views/room/widgets/furniture/mannequin/FurnitureMannequinView.scss b/src/views/room/widgets/furniture/mannequin/FurnitureMannequinView.scss index e69de29b..cc16ce4c 100644 --- a/src/views/room/widgets/furniture/mannequin/FurnitureMannequinView.scss +++ b/src/views/room/widgets/furniture/mannequin/FurnitureMannequinView.scss @@ -0,0 +1,9 @@ +.nitro-mannequin { + width: 350px; + + .mannequin-preview { + width: 83px; + height: 130px; + background-image: url('../../../../../assets/images/room-widgets/mannequin-widget/mannequin-spritesheet.png'); + } +} diff --git a/src/views/room/widgets/furniture/mannequin/FurnitureMannequinView.tsx b/src/views/room/widgets/furniture/mannequin/FurnitureMannequinView.tsx index 8c2d8e17..45ff3cad 100644 --- a/src/views/room/widgets/furniture/mannequin/FurnitureMannequinView.tsx +++ b/src/views/room/widgets/furniture/mannequin/FurnitureMannequinView.tsx @@ -1,16 +1,218 @@ -import { RoomEngineObjectEvent, RoomEngineTriggerWidgetEvent } from 'nitro-renderer'; -import { FC } from 'react'; +import { AvatarFigurePartType, FurnitureMannequinSaveLookComposer, FurnitureMannequinSaveNameComposer, FurnitureMultiStateComposer, IAvatarFigureContainer, Nitro, NitroEvent, RoomEngineTriggerWidgetEvent, RoomObjectVariable } from 'nitro-renderer'; +import { FC, KeyboardEvent, useCallback, useEffect, useState } from 'react'; +import { GetRoomEngine } from '../../../../../api/nitro/room/GetRoomEngine'; +import { GetRoomSession } from '../../../../../api/nitro/session/GetRoomSession'; +import { GetSessionDataManager } from '../../../../../api/nitro/session/GetSessionDataManager'; +import { CreateEventDispatcherHook } from '../../../../../hooks/events/event-dispatcher.base'; import { useRoomEngineEvent } from '../../../../../hooks/events/nitro/room/room-engine-event'; -import { FurnitureMannequinViewProps } from './FurnitureMannequinView.types'; +import { NitroCardContentView } from '../../../../../layout/card/content/NitroCardContentView'; +import { NitroCardHeaderView } from '../../../../../layout/card/header/NitroCardHeaderView'; +import { NitroCardView } from '../../../../../layout/card/NitroCardView'; +import { LocalizeText } from '../../../../../utils/LocalizeText'; +import { AvatarImageView } from '../../../../avatar-image/AvatarImageView'; +import { RoomWidgetRoomObjectUpdateEvent } from '../../events'; +import { FurnitureMannequinData } from './FurnitureMannequinData'; +import { FurnitureMannequinViewMode, FurnitureMannequinViewProps } from './FurnitureMannequinView.types'; export const FurnitureMannequinView: FC = props => { - const onRoomEngineObjectEvent = (event: RoomEngineObjectEvent) => + const parts = [ + AvatarFigurePartType.CHEST_ACCESSORY, + AvatarFigurePartType.COAT_CHEST, + AvatarFigurePartType.CHEST, + AvatarFigurePartType.LEGS, + AvatarFigurePartType.SHOES, + AvatarFigurePartType.WAIST_ACCESSORY + ]; + const baseAvatar = ['hd', 99999, 99998]; + + const [ mannequinData, setMannequinData ] = useState(null); + const [ viewMode, setViewMode ] = useState(''); + + useEffect(() => { - console.log(event); + if(mannequinData && !mannequinData.renderedFigure) + { + const figureContainer = Nitro.instance.avatar.createFigureContainer(mannequinData.figure); + loadMannequinFigure(figureContainer); + } + }, [ mannequinData ]); + + const onNitroEvent = useCallback((event: NitroEvent) => + { + switch(event.type) + { + case RoomEngineTriggerWidgetEvent.REQUEST_MANNEQUIN: { + const widgetEvent = (event as RoomEngineTriggerWidgetEvent); + + const roomObject = GetRoomEngine().getRoomObject(widgetEvent.roomId, widgetEvent.objectId, widgetEvent.category); + + if(!roomObject) return; + + const figure = roomObject.model.getValue(RoomObjectVariable.FURNITURE_MANNEQUIN_FIGURE); + const gender = roomObject.model.getValue(RoomObjectVariable.FURNITURE_MANNEQUIN_GENDER); + const name = roomObject.model.getValue(RoomObjectVariable.FURNITURE_MANNEQUIN_NAME); + + const figureContainer = Nitro.instance.avatar.createFigureContainer(figure); + const clubLevel = Nitro.instance.avatar.getFigureClubLevel(figureContainer, gender, parts); + + const mannequinData = new FurnitureMannequinData(widgetEvent.objectId, widgetEvent.category, name, figure, gender, clubLevel); + + setMannequinData(mannequinData); + loadViewMode(mannequinData); + return; + } + case RoomWidgetRoomObjectUpdateEvent.FURNI_REMOVED: { + const widgetEvent = (event as RoomWidgetRoomObjectUpdateEvent); + + setMannequinData(prevState => + { + if(!prevState || (widgetEvent.id !== prevState.objectId) || (widgetEvent.category !== prevState.category)) return prevState; + + return null; + }); + return; + } + } + }, []); + + useRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_MANNEQUIN, onNitroEvent); + CreateEventDispatcherHook(RoomWidgetRoomObjectUpdateEvent.FURNI_REMOVED, props.events, onNitroEvent); + + const loadMannequinFigure = useCallback((figureContainer: IAvatarFigureContainer) => + { + for(const item of figureContainer.getPartTypeIds()) + { + if(parts.indexOf(item) == -1) + { + figureContainer.removePart(item); + } + } + + figureContainer.updatePart(baseAvatar[0].toString(), Number(baseAvatar[1]), [ Number(baseAvatar[2]) ]); + + setMannequinData(mannequinData => new FurnitureMannequinData(mannequinData.objectId, mannequinData.category, mannequinData.name, mannequinData.figure, mannequinData.gender, mannequinData.clubLevel, figureContainer.getFigureString())); + }, []); + + const loadViewMode = useCallback((mannequinData: FurnitureMannequinData) => + { + if(!mannequinData) return; + + const userCanEdit = (GetRoomSession().isRoomOwner || GetSessionDataManager().isModerator); + const userGender = Nitro.instance.sessionDataManager.gender; + const userClubLevel = Nitro.instance.sessionDataManager.clubLevel; + + if(userCanEdit) + { + setViewMode(FurnitureMannequinViewMode.EDIT); + } + else + { + if(!mannequinData.figure || mannequinData.figure.length <= 1) return; + + if(userGender.toUpperCase() !== mannequinData.gender.toUpperCase()) + { + setViewMode(FurnitureMannequinViewMode.INCOMPATIBLE_GENDER); + } + else if(userClubLevel < mannequinData.clubLevel) + { + setViewMode(FurnitureMannequinViewMode.CLUB); + } + else + { + setViewMode(FurnitureMannequinViewMode.DEFAULT); + } + } + }, []); + + const processAction = useCallback((type: string, value: string = null) => + { + switch(type) + { + case 'close': + setMannequinData(null); + return; + case 'set_name': + setMannequinData(mannequinData => new FurnitureMannequinData(mannequinData.objectId, mannequinData.category, value, mannequinData.figure, mannequinData.gender, mannequinData.clubLevel, mannequinData.renderedFigure)); + return; + case 'load_figure': + loadMannequinFigure(Nitro.instance.avatar.createFigureContainer(Nitro.instance.sessionDataManager.figure)); + setViewMode(FurnitureMannequinViewMode.SAVE); + return; + case 'back': + loadMannequinFigure(Nitro.instance.avatar.createFigureContainer(mannequinData.figure)); + setViewMode(FurnitureMannequinViewMode.EDIT); + return; + case 'save_name': + GetRoomSession().connection.send(new FurnitureMannequinSaveNameComposer(mannequinData.objectId, mannequinData.name)); + return; + case 'save_figure': + GetRoomSession().connection.send(new FurnitureMannequinSaveLookComposer(mannequinData.objectId)); + processAction('save_name'); + processAction('close'); + return; + case 'wear': + GetRoomSession().connection.send(new FurnitureMultiStateComposer(mannequinData.objectId)); + processAction('close'); + return; + } + }, [ mannequinData ]); + + const handleKeyDown = (event: KeyboardEvent) => + { + if(event.key !== 'Enter') return; + + processAction('save_name'); }; - useRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_MANNEQUIN, onRoomEngineObjectEvent); + if(!mannequinData) return null; - return null; + return ( + + processAction('close') } /> + +
+
+
+ +
+
+
+ { viewMode === FurnitureMannequinViewMode.EDIT && <> + processAction('set_name', event.target.value) } onKeyDown={ event => handleKeyDown(event) } /> +
processAction('load_figure') }>{ LocalizeText('mannequin.widget.style') }
+
processAction('wear') }>{ LocalizeText('mannequin.widget.wear') }
+ } + { viewMode === FurnitureMannequinViewMode.SAVE && <> +
+
+
{ mannequinData.name }
+
{ LocalizeText('mannequin.widget.savetext') }
+
+
+
processAction('back') }>{ LocalizeText('mannequin.widget.back') }
+
processAction('save_figure') }>{ LocalizeText('mannequin.widget.save') }
+
+
+ } + { viewMode === FurnitureMannequinViewMode.DEFAULT && <> +
+
+
{ mannequinData.name }
+
{ LocalizeText('mannequin.widget.weartext') }
+
+
processAction('wear') }>{ LocalizeText('mannequin.widget.wear') }
+
+ } + { viewMode === FurnitureMannequinViewMode.CLUB && <> +
{ LocalizeText('mannequin.widget.clubnotification') }
+ } + { viewMode === FurnitureMannequinViewMode.INCOMPATIBLE_GENDER && <> +
{ LocalizeText('mannequin.widget.wronggender') }
+ } +
+
+
+
+ ); } diff --git a/src/views/room/widgets/furniture/mannequin/FurnitureMannequinView.types.tsx b/src/views/room/widgets/furniture/mannequin/FurnitureMannequinView.types.tsx index b4e5e0ff..eae1f80c 100644 --- a/src/views/room/widgets/furniture/mannequin/FurnitureMannequinView.types.tsx +++ b/src/views/room/widgets/furniture/mannequin/FurnitureMannequinView.types.tsx @@ -1,6 +1,13 @@ import { FurnitureWidgetProps } from '../FurnitureWidget.types'; export interface FurnitureMannequinViewProps extends FurnitureWidgetProps -{ +{} +export class FurnitureMannequinViewMode +{ + public static readonly EDIT: string = 'edit'; + public static readonly SAVE: string = 'save'; + public static readonly CLUB: string = 'club'; + public static readonly DEFAULT: string = 'default'; + public static readonly INCOMPATIBLE_GENDER: string = 'incompatible_gender'; } From 742ca4b54846c4a47c69c55df9de267c113717fc Mon Sep 17 00:00:00 2001 From: MyNameIsBatman Date: Sat, 12 Jun 2021 18:19:59 -0300 Subject: [PATCH 2/5] Toolbar updates --- src/views/toolbar/ToolbarView.tsx | 5 +++-- src/views/toolbar/me/ToolbarMeView.tsx | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/views/toolbar/ToolbarView.tsx b/src/views/toolbar/ToolbarView.tsx index 49e85ce4..6ab6a57e 100644 --- a/src/views/toolbar/ToolbarView.tsx +++ b/src/views/toolbar/ToolbarView.tsx @@ -1,6 +1,6 @@ import { UserInfoEvent } from 'nitro-renderer/src/nitro/communication/messages/incoming/user/data/UserInfoEvent'; import { UserInfoDataParser } from 'nitro-renderer/src/nitro/communication/messages/parser/user/data/UserInfoDataParser'; -import { useCallback, useState } from 'react'; +import { FC, useCallback, useState } from 'react'; import { AvatarEditorEvent, CatalogEvent, FriendListEvent, InventoryEvent, NavigatorEvent } from '../../events'; import { dispatchUiEvent } from '../../hooks/events/ui/ui-event'; import { CreateMessageHook } from '../../hooks/messages/message-event'; @@ -10,7 +10,7 @@ import { AvatarImageView } from '../avatar-image/AvatarImageView'; import { ToolbarMeView } from './me/ToolbarMeView'; import { ToolbarViewItems, ToolbarViewProps } from './ToolbarView.types'; -export function ToolbarView(props: ToolbarViewProps): JSX.Element +export const ToolbarView: FC = props => { const { isInRoom } = props; @@ -46,6 +46,7 @@ export function ToolbarView(props: ToolbarViewProps): JSX.Element return; case ToolbarViewItems.CLOTHING_ITEM: dispatchUiEvent(new AvatarEditorEvent(AvatarEditorEvent.TOGGLE_EDITOR)); + setMeExpanded(false); return; } }, []); diff --git a/src/views/toolbar/me/ToolbarMeView.tsx b/src/views/toolbar/me/ToolbarMeView.tsx index 48564dfd..31cc71ab 100644 --- a/src/views/toolbar/me/ToolbarMeView.tsx +++ b/src/views/toolbar/me/ToolbarMeView.tsx @@ -1,9 +1,9 @@ import { MouseEventType } from 'nitro-renderer'; -import { useEffect, useRef } from 'react'; +import { FC, useEffect, useRef } from 'react'; import { ToolbarViewItems } from '../ToolbarView.types'; import { ToolbarMeViewProps } from './ToolbarMeView.types'; -export function ToolbarMeView(props: ToolbarMeViewProps): JSX.Element +export const ToolbarMeView: FC = props => { const { setMeExpanded = null, handleToolbarItemClick = null } = props; From 98ed484e017f27e2fc5f387bd0f64422f785b0e3 Mon Sep 17 00:00:00 2001 From: MyNameIsBatman Date: Sat, 12 Jun 2021 18:26:10 -0300 Subject: [PATCH 3/5] Fix catalog page text color --- .../views/page/layout/pets3/CatalogLayoutPets3View.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/views/catalog/views/page/layout/pets3/CatalogLayoutPets3View.tsx b/src/views/catalog/views/page/layout/pets3/CatalogLayoutPets3View.tsx index cc065c60..78239150 100644 --- a/src/views/catalog/views/page/layout/pets3/CatalogLayoutPets3View.tsx +++ b/src/views/catalog/views/page/layout/pets3/CatalogLayoutPets3View.tsx @@ -8,10 +8,10 @@ export const CatalogLayoutPets3View: FC = props => return (
-
-
-
-
+
+
+
+
From 0a4f88f7a01907a930ea075f1bcf4603f8e5bc69 Mon Sep 17 00:00:00 2001 From: MyNameIsBatman Date: Sun, 13 Jun 2021 01:06:40 -0300 Subject: [PATCH 4/5] Room Widget: Engraving Lock and some other stuff --- .../engraving-lock-spritesheet.png | Bin 0 -> 41062 bytes .../lovelock-widget/lovelock-spritesheet.png | Bin 39390 -> 0 bytes .../widgets/furniture/FurnitureWidgets.scss | 1 + .../furniture/FurnitureWidgetsView.tsx | 2 + .../FurnitureEngravingLockData.ts | 10 ++ .../FurnitureEngravingLockView.scss | 76 +++++++++ .../FurnitureEngravingLockView.tsx | 149 ++++++++++++++++++ .../FurnitureEngravingLockView.types.ts | 4 + .../FurnitureExchangeCreditView.tsx | 2 + .../high-score/FurnitureHighScoreView.tsx | 8 +- .../present/FurniturePresentView.tsx | 6 +- 11 files changed, 251 insertions(+), 7 deletions(-) create mode 100644 src/assets/images/room-widgets/engraving-lock-widget/engraving-lock-spritesheet.png delete mode 100644 src/assets/images/room-widgets/lovelock-widget/lovelock-spritesheet.png create mode 100644 src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockData.ts create mode 100644 src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockView.scss create mode 100644 src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockView.tsx create mode 100644 src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockView.types.ts diff --git a/src/assets/images/room-widgets/engraving-lock-widget/engraving-lock-spritesheet.png b/src/assets/images/room-widgets/engraving-lock-widget/engraving-lock-spritesheet.png new file mode 100644 index 0000000000000000000000000000000000000000..472dc85b296288a7367517a47ed26480c0352438 GIT binary patch literal 41062 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/room-widgets/lovelock-widget/lovelock-spritesheet.png b/src/assets/images/room-widgets/lovelock-widget/lovelock-spritesheet.png deleted file mode 100644 index 9efcb3282ab0c74097b42bcc5c9ec0744d74eefa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39390 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 diff --git a/src/views/room/widgets/furniture/FurnitureWidgets.scss b/src/views/room/widgets/furniture/FurnitureWidgets.scss index bfb6128c..270dd3ec 100644 --- a/src/views/room/widgets/furniture/FurnitureWidgets.scss +++ b/src/views/room/widgets/furniture/FurnitureWidgets.scss @@ -1,3 +1,4 @@ +@import './engraving-lock/FurnitureEngravingLockView'; @import './exchange-credit/FurnitureExchangeCreditView'; @import './manipulation-menu/FurnitureManipulationMenuView'; @import './mannequin/FurnitureMannequinView'; diff --git a/src/views/room/widgets/furniture/FurnitureWidgetsView.tsx b/src/views/room/widgets/furniture/FurnitureWidgetsView.tsx index 06959d8d..651c04a1 100644 --- a/src/views/room/widgets/furniture/FurnitureWidgetsView.tsx +++ b/src/views/room/widgets/furniture/FurnitureWidgetsView.tsx @@ -1,3 +1,4 @@ +import { FurnitureEngravingLockView } from './engraving-lock/FurnitureEngravingLockView'; import { FurnitureExchangeCreditView } from './exchange-credit/FurnitureExchangeCreditView'; import { FurnitureWidgetsViewProps } from './FurnitureWidgetsView.types'; import { FurnitureHighScoreView } from './high-score/FurnitureHighScoreView'; @@ -13,6 +14,7 @@ export function FurnitureWidgetsView(props: FurnitureWidgetsViewProps): JSX.Elem return (
+ diff --git a/src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockData.ts b/src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockData.ts new file mode 100644 index 00000000..7a58ecdc --- /dev/null +++ b/src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockData.ts @@ -0,0 +1,10 @@ +export class FurnitureEngravingLockData +{ + constructor( + public objectId: number, + public category: number = 0, + public type: number = 0, + public usernames: string[] = [], + public figures: string[] = [], + public date: string = null) {} +} diff --git a/src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockView.scss b/src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockView.scss new file mode 100644 index 00000000..eb6d8987 --- /dev/null +++ b/src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockView.scss @@ -0,0 +1,76 @@ +.nitro-engraving-lock { + width: 300px; + + .engraving-lock-stage-1 { + width: 31px; + height: 39px; + background-position: -380px -43px; + background-image: url('../../../../../assets/images/room-widgets/engraving-lock-widget/engraving-lock-spritesheet.png'); + } + + .engraving-lock-stage-2 { + width: 36px; + height: 43px; + background-position: -375px 0px; + background-image: url('../../../../../assets/images/room-widgets/engraving-lock-widget/engraving-lock-spritesheet.png'); + } +} + +.nitro-engraving-lock-view { + width: 375px; + height: 210px; + background-position: 0px 0px; + background-image: url('../../../../../assets/images/room-widgets/engraving-lock-widget/engraving-lock-spritesheet.png'); + + color: #622e54; + font-weight: bold; + font-size: 16px; + text-shadow: 0px 1px white; + + &.engraving-lock-3 { + background-position: 0px -210px; + color: #614110; + } + + &.engraving-lock-4 { + background-position: 0px -420px; + color: #f1dcc8; + text-shadow: 0px 2px rgba(0, 0, 0, .4); + + .engraving-lock-avatar { + margin-bottom: 10px; + } + } + + .engraving-lock-close { + position: absolute; + cursor: pointer; + width: 15px; + height: 15px; + top: 34px; + right: 27px; + } + + .engraving-lock-avatar { + width: 70px; + height: 120px; + + div { + position: absolute; + margin-top: -5px; + } + + &:nth-child(1) { + div { + margin-left: -10px; + } + } + + &:nth-child(2) { + div { + margin-left: -15px; + } + } + } + +} diff --git a/src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockView.tsx b/src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockView.tsx new file mode 100644 index 00000000..ad6eda9b --- /dev/null +++ b/src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockView.tsx @@ -0,0 +1,149 @@ +import { LoveLockFurniFinishedEvent, LoveLockFurniFriendConfirmedEvent, LoveLockFurniStartEvent, LoveLockStartConfirmComposer, NitroEvent, RoomEngineTriggerWidgetEvent, RoomObjectVariable } from 'nitro-renderer'; +import { FC, useCallback, useState } from 'react'; +import { GetRoomSession } from '../../../../../api'; +import { GetRoomEngine } from '../../../../../api/nitro/room/GetRoomEngine'; +import { DraggableWindow } from '../../../../../hooks/draggable-window/DraggableWindow'; +import { CreateEventDispatcherHook } from '../../../../../hooks/events/event-dispatcher.base'; +import { useRoomEngineEvent } from '../../../../../hooks/events/nitro/room/room-engine-event'; +import { CreateMessageHook } from '../../../../../hooks/messages/message-event'; +import { NitroCardContentView } from '../../../../../layout/card/content/NitroCardContentView'; +import { NitroCardHeaderView } from '../../../../../layout/card/header/NitroCardHeaderView'; +import { NitroCardView } from '../../../../../layout/card/NitroCardView'; +import { LocalizeText } from '../../../../../utils/LocalizeText'; +import { AvatarImageView } from '../../../../avatar-image/AvatarImageView'; +import { RoomWidgetRoomObjectUpdateEvent } from '../../events/RoomWidgetRoomObjectUpdateEvent'; +import { FurnitureEngravingLockData } from './FurnitureEngravingLockData'; +import { FurnitureEngravingLockViewProps } from './FurnitureEngravingLockView.types'; + +export const FurnitureEngravingLockView: FC = props => +{ + const [ engravingLockData, setEngravingLockData ] = useState(null); + const [ engravingStage, setEngravingStage ] = useState(0); + + const onNitroEvent = (event: NitroEvent) => + { + switch(event.type) + { + case RoomEngineTriggerWidgetEvent.REQUEST_FRIEND_FURNITURE_ENGRAVING: { + const widgetEvent = (event as RoomEngineTriggerWidgetEvent); + + const roomObject = GetRoomEngine().getRoomObject(widgetEvent.roomId, widgetEvent.objectId, widgetEvent.category); + + if(!roomObject) return; + + const data = roomObject.model.getValue(RoomObjectVariable.FURNITURE_DATA); + const type = roomObject.model.getValue(RoomObjectVariable.FURNITURE_FRIENDFURNI_ENGRAVING) + + if(data[0] === '1') + { + if(data.length !== 6) return; + + setEngravingLockData(new FurnitureEngravingLockData(widgetEvent.objectId, widgetEvent.category, type, [ data[1], data[2] ], [ data[3], data[4] ], data[5])); + } + return; + } + case RoomWidgetRoomObjectUpdateEvent.FURNI_REMOVED: { + const widgetEvent = (event as RoomWidgetRoomObjectUpdateEvent); + + setEngravingLockData(prevState => + { + if(!prevState || (widgetEvent.id !== prevState.objectId) || (widgetEvent.category !== prevState.category)) return prevState; + + return null; + }); + return; + } + } + }; + + useRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_FRIEND_FURNITURE_ENGRAVING, onNitroEvent); + CreateEventDispatcherHook(RoomWidgetRoomObjectUpdateEvent.FURNI_REMOVED, props.events, onNitroEvent); + + const onLoveLockFurniStartEvent = useCallback((event: LoveLockFurniStartEvent) => + { + const parser = event.getParser(); + + setEngravingLockData(new FurnitureEngravingLockData(parser.furniId)); + + if(parser.start) + setEngravingStage(1); + else + setEngravingStage(2); + + }, [ engravingStage ]); + + const onLoveLockDoneEvent = useCallback((event: LoveLockFurniFinishedEvent | LoveLockFurniFriendConfirmedEvent) => + { + processAction('close_request'); + }, []); + + CreateMessageHook(LoveLockFurniStartEvent, onLoveLockFurniStartEvent); + CreateMessageHook(LoveLockFurniFinishedEvent, onLoveLockDoneEvent); + CreateMessageHook(LoveLockFurniFriendConfirmedEvent, onLoveLockDoneEvent); + + const processAction = useCallback((type: string, value: string = null) => + { + switch(type) + { + case 'close_view': + setEngravingLockData(null); + return; + case 'accept_request': + GetRoomSession().connection.send(new LoveLockStartConfirmComposer(engravingLockData.objectId, true)); + return; + case 'reject_request': + GetRoomSession().connection.send(new LoveLockStartConfirmComposer(engravingLockData.objectId, false)); + processAction('close_request'); + return; + case 'close_request': + setEngravingStage(0); + setEngravingLockData(null); + return; + } + }, [ engravingLockData ]); + + return ( + <> + { engravingStage > 0 && + processAction('close_request') } /> + +
+ { LocalizeText('friend.furniture.confirm.lock.subtitle') } +
+
+
+
+ { engravingStage === 2 &&
{ LocalizeText('friend.furniture.confirm.lock.other.locked') }
} +
+ + +
+
+
} + { engravingLockData && engravingLockData.usernames.length > 0 && +
+
processAction('close_view') }>
+
+
+ +
+
+ +
+
+
+
+ { engravingLockData.type === 0 && LocalizeText('lovelock.engraving.caption') } + { engravingLockData.type === 3 && LocalizeText('wildwest.engraving.caption') } +
+
{ engravingLockData.date }
+
+
{ engravingLockData.usernames[0] }
+
{ engravingLockData.usernames[1] }
+
+
+
+
} + + ); +} diff --git a/src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockView.types.ts b/src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockView.types.ts new file mode 100644 index 00000000..b5d92bae --- /dev/null +++ b/src/views/room/widgets/furniture/engraving-lock/FurnitureEngravingLockView.types.ts @@ -0,0 +1,4 @@ +import { FurnitureWidgetProps } from '../FurnitureWidget.types'; + +export interface FurnitureEngravingLockViewProps extends FurnitureWidgetProps +{} diff --git a/src/views/room/widgets/furniture/exchange-credit/FurnitureExchangeCreditView.tsx b/src/views/room/widgets/furniture/exchange-credit/FurnitureExchangeCreditView.tsx index 61c824dc..2055134e 100644 --- a/src/views/room/widgets/furniture/exchange-credit/FurnitureExchangeCreditView.tsx +++ b/src/views/room/widgets/furniture/exchange-credit/FurnitureExchangeCreditView.tsx @@ -23,6 +23,8 @@ export const FurnitureExchangeCreditView: FC = pro const roomObject = GetRoomEngine().getRoomObject(widgetEvent.roomId, widgetEvent.objectId, widgetEvent.category); + if(!roomObject) return; + const value = roomObject.model.getValue(RoomObjectVariable.FURNITURE_CREDIT_VALUE); setExchangeCreditData(new FurnitureExchangeCreditData(widgetEvent.objectId, widgetEvent.category, value)); diff --git a/src/views/room/widgets/furniture/high-score/FurnitureHighScoreView.tsx b/src/views/room/widgets/furniture/high-score/FurnitureHighScoreView.tsx index 6d77fe7b..222d39a4 100644 --- a/src/views/room/widgets/furniture/high-score/FurnitureHighScoreView.tsx +++ b/src/views/room/widgets/furniture/high-score/FurnitureHighScoreView.tsx @@ -1,17 +1,17 @@ -import { RoomEngineObjectEvent, RoomEngineTriggerWidgetEvent } from 'nitro-renderer'; +import { NitroEvent, RoomEngineTriggerWidgetEvent } from 'nitro-renderer'; import { FC } from 'react'; import { useRoomEngineEvent } from '../../../../../hooks/events/nitro/room/room-engine-event'; import { FurnitureHighScoreViewProps } from './FurnitureHighScoreView.types'; export const FurnitureHighScoreView: FC = props => { - const onRoomEngineObjectEvent = (event: RoomEngineObjectEvent) => + const onNitroEvent = (event: NitroEvent) => { console.log(event); }; - useRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_HIGH_SCORE_DISPLAY, onRoomEngineObjectEvent); - useRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_HIDE_HIGH_SCORE_DISPLAY, onRoomEngineObjectEvent); + useRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_HIGH_SCORE_DISPLAY, onNitroEvent); + useRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_HIDE_HIGH_SCORE_DISPLAY, onNitroEvent); return null; } diff --git a/src/views/room/widgets/furniture/present/FurniturePresentView.tsx b/src/views/room/widgets/furniture/present/FurniturePresentView.tsx index 7b3616b3..97714245 100644 --- a/src/views/room/widgets/furniture/present/FurniturePresentView.tsx +++ b/src/views/room/widgets/furniture/present/FurniturePresentView.tsx @@ -1,16 +1,16 @@ -import { RoomEngineObjectEvent, RoomEngineTriggerWidgetEvent } from 'nitro-renderer'; +import { NitroEvent, RoomEngineTriggerWidgetEvent } from 'nitro-renderer'; import { FC } from 'react'; import { useRoomEngineEvent } from '../../../../../hooks/events/nitro/room/room-engine-event'; import { FurniturePresentViewProps } from './FurniturePresentView.types'; export const FurniturePresentView: FC = props => { - const onRoomEngineObjectEvent = (event: RoomEngineObjectEvent) => + const onNitroEvent = (event: NitroEvent) => { console.log(event); }; - useRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_PRESENT, onRoomEngineObjectEvent); + useRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_PRESENT, onNitroEvent); return null; } From 5003bf06708318cac184aee2ad5cef0c53a48f0b Mon Sep 17 00:00:00 2001 From: MyNameIsBatman Date: Sun, 13 Jun 2021 02:13:55 -0300 Subject: [PATCH 5/5] Room Widget: camera --- src/assets/images/camera/base.png | Bin 2166 -> 0 bytes src/assets/images/camera/hud.png | Bin 959 -> 0 bytes src/assets/images/camera/snap.png | Bin 1344 -> 0 bytes .../camera-widget/camera-spritesheet.png | Bin 0 -> 6015 bytes .../camera-widget}/selected.png | Bin .../camera-widget}/selector.png | Bin src/events/index.ts | 1 + .../camera/RoomWidgetCameraEvent.ts | 13 ++++ src/events/room-widgets/camera/index.ts | 1 + src/events/room-widgets/index.ts | 1 + src/views/room/RoomView.tsx | 2 + src/views/room/widgets/RoomWidgets.scss | 1 + .../room/widgets/camera/CameraWidgetView.scss | 24 ++++++++ .../room/widgets/camera/CameraWidgetView.tsx | 57 ++++++++++++++++++ .../widgets/camera/CameraWidgetView.types.ts | 2 + src/views/toolbar/ToolbarView.tsx | 8 +++ src/views/toolbar/ToolbarView.types.ts | 1 + 17 files changed, 111 insertions(+) delete mode 100644 src/assets/images/camera/base.png delete mode 100644 src/assets/images/camera/hud.png delete mode 100644 src/assets/images/camera/snap.png create mode 100644 src/assets/images/room-widgets/camera-widget/camera-spritesheet.png rename src/assets/images/{camera => room-widgets/camera-widget}/selected.png (100%) rename src/assets/images/{camera => room-widgets/camera-widget}/selector.png (100%) create mode 100644 src/events/room-widgets/camera/RoomWidgetCameraEvent.ts create mode 100644 src/events/room-widgets/camera/index.ts create mode 100644 src/events/room-widgets/index.ts create mode 100644 src/views/room/widgets/camera/CameraWidgetView.scss create mode 100644 src/views/room/widgets/camera/CameraWidgetView.tsx create mode 100644 src/views/room/widgets/camera/CameraWidgetView.types.ts diff --git a/src/assets/images/camera/base.png b/src/assets/images/camera/base.png deleted file mode 100644 index d6cf994d063352f748ce25d259c4dd3e54645754..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2166 zcmcguZAcVp9G|t_b$3bIyLH{t%uHBLiPW~K$PS!NQDN3*ZI-;~)q}AXqvJYzIgjHS zd%e5DPj~JLwP-BUKte5Ymm$Hmas)elsPRKqgm4uYT45O^;r*Xy+-GN$=u6#)XP)2x z|NH%4o@a*VnKN8NZI&a?K~YpzeO+}UMVWXQw{2GN{Bz)CCq>!5tgmMHBO~Lg66oL- zpA3wgE|4lO-7F|cWZiE%St8~YukYy@E&J)*x<3vIJ3ZmV(BO-lq0?7aZWgAlP4$;Q z`;(n{p|`caHOAZa6jTQ} zf1Q#cmd3mn1t#F;U5!45b~Ughe3`h97sfBXr8K6^2U}M6GtOmVmc126%qtG(zP^ez9-!k z;^yaq6E9K-27*4NXE%)^NsX2%lsN})}L)ee+P?=n%A8@AA! zTF%chWGEnnx4gxPhp(arwla}};2UDGAZ1ijsn; zFI*V`=o&Xd0JM05PZdY8ACylnl3T3lOc0_kr7r9kyGCh6fQsAY784OGUTLDxU@bLR zOAJ;nw&=6b0j(`{jX1VS+r+yzxzdb__=}~9Y$EjG{*kbc!fQst3?j5T)t{pSo+@sE zIMzThSvGl^GSkbYi406+Vj>$8lbMLPy$lf>4r3x|LJ^ZzOypsr1rxt%gas41nAi%t z;;!OMW_S=_g0BvHFo5?*F%~C02mnj-U|>+AM8<6YV_N+pK5g0El??5>|6o(cNbPX4 z_1ErDZ!{8q*TU7n5xS;a5(F;{F_fBg&A8NPV+=HY? zq2`7$*dAIE5Bx%7*T&CVmCkcne(CarvpQlvg;&y(WQq3Bv{hy!3{t>X-)^+da%@`v1?sM~#X{vlv{5lGnoFt1q~FISuQ zCG3B7&&`$BrBfOO>}#&F0woiCdj2S*N2pc`=9l%#X|um6hrgfX)-x)yALJser}% zJO7x?#Rw*xA$^9Yz$J~%LJ1zys1X2(A8whz{^{zke==dQj;cZj)~$N=Nn}H|%iEc$ zF2Il$uxsIO;eW{d(D{c0kPAxOH%uXkyOjkhh@@si`ZU3Zhv!AQA?X1|Do6b5>F)dA lJM~sne)@Lm9LU8E>-f1hoe(_ia##<<^>p=fS?83{1OQ0_I2!-} diff --git a/src/assets/images/camera/snap.png b/src/assets/images/camera/snap.png deleted file mode 100644 index c3f57a0435278386e41682712f92d42f0abacd06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1344 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/camera/selected.png b/src/assets/images/room-widgets/camera-widget/selected.png similarity index 100% rename from src/assets/images/camera/selected.png rename to src/assets/images/room-widgets/camera-widget/selected.png diff --git a/src/assets/images/camera/selector.png b/src/assets/images/room-widgets/camera-widget/selector.png similarity index 100% rename from src/assets/images/camera/selector.png rename to src/assets/images/room-widgets/camera-widget/selector.png diff --git a/src/events/index.ts b/src/events/index.ts index 81a2cdd4..70ffd6ca 100644 --- a/src/events/index.ts +++ b/src/events/index.ts @@ -3,3 +3,4 @@ export * from './catalog'; export * from './friend-list'; export * from './inventory'; export * from './navigator'; +export * from './room-widgets'; diff --git a/src/events/room-widgets/camera/RoomWidgetCameraEvent.ts b/src/events/room-widgets/camera/RoomWidgetCameraEvent.ts new file mode 100644 index 00000000..0eb6b4f0 --- /dev/null +++ b/src/events/room-widgets/camera/RoomWidgetCameraEvent.ts @@ -0,0 +1,13 @@ +import { NitroEvent } from 'nitro-renderer'; + +export class RoomWidgetCameraEvent extends NitroEvent +{ + public static SHOW_CAMERA: string = 'NE_SHOW_CAMERA'; + public static HIDE_CAMERA: string = 'NE_HIDE_CAMERA'; + public static TOGGLE_CAMERA: string = 'NE_TOGGLE_CAMERA'; + + constructor(type: string) + { + super(type); + } +} diff --git a/src/events/room-widgets/camera/index.ts b/src/events/room-widgets/camera/index.ts new file mode 100644 index 00000000..a04e80d0 --- /dev/null +++ b/src/events/room-widgets/camera/index.ts @@ -0,0 +1 @@ +export * from './RoomWidgetCameraEvent'; diff --git a/src/events/room-widgets/index.ts b/src/events/room-widgets/index.ts new file mode 100644 index 00000000..5eeca25b --- /dev/null +++ b/src/events/room-widgets/index.ts @@ -0,0 +1 @@ +export * from './camera'; diff --git a/src/views/room/RoomView.tsx b/src/views/room/RoomView.tsx index 381caa1b..99019599 100644 --- a/src/views/room/RoomView.tsx +++ b/src/views/room/RoomView.tsx @@ -7,6 +7,7 @@ import { DispatchTouchEvent } from '../../api/nitro/room/DispatchTouchEvent'; import { GetRoomEngine } from '../../api/nitro/room/GetRoomEngine'; import { RoomViewProps } from './RoomView.types'; import { AvatarInfoWidgetView } from './widgets/avatar-info/AvatarInfoWidgetView'; +import { CameraWidgetView } from './widgets/camera/CameraWidgetView'; import { ChatInputView } from './widgets/chat-input/ChatInputView'; import { ChatWidgetView } from './widgets/chat/ChatWidgetView'; import { FurnitureWidgetsView } from './widgets/furniture/FurnitureWidgetsView'; @@ -92,6 +93,7 @@ export function RoomView(props: RoomViewProps): JSX.Element createPortal(props.children, document.getElementById('room-view').appendChild(roomCanvas)) && <> + diff --git a/src/views/room/widgets/RoomWidgets.scss b/src/views/room/widgets/RoomWidgets.scss index 71970ddb..8b1fa8ca 100644 --- a/src/views/room/widgets/RoomWidgets.scss +++ b/src/views/room/widgets/RoomWidgets.scss @@ -1,3 +1,4 @@ +@import './camera/CameraWidgetView'; @import './chat/ChatWidgetView'; @import './chat-input/ChatInputView'; @import './furniture/FurnitureWidgets'; diff --git a/src/views/room/widgets/camera/CameraWidgetView.scss b/src/views/room/widgets/camera/CameraWidgetView.scss new file mode 100644 index 00000000..163f651b --- /dev/null +++ b/src/views/room/widgets/camera/CameraWidgetView.scss @@ -0,0 +1,24 @@ +.nitro-camera { + width: 340px; + height: 462px; + + background-image: url('../../../../assets/images/room-widgets/camera-widget/camera-spritesheet.png'); + + .camera-button { + width: 94px; + height: 94px; + cursor: pointer; + margin-top: 334px; + + background-image: url('../../../../assets/images/room-widgets/camera-widget/camera-spritesheet.png'); + background-position: -340px 0px; + + &:hover { + background-position: -340px -94px; + } + + &:active { + background-position: -340px -188px; + } + } +} diff --git a/src/views/room/widgets/camera/CameraWidgetView.tsx b/src/views/room/widgets/camera/CameraWidgetView.tsx new file mode 100644 index 00000000..9b53b7a7 --- /dev/null +++ b/src/views/room/widgets/camera/CameraWidgetView.tsx @@ -0,0 +1,57 @@ +import { FC, useCallback, useState } from 'react'; +import { RoomWidgetCameraEvent } from '../../../../events/room-widgets/camera/RoomWidgetCameraEvent'; +import { DraggableWindow } from '../../../../hooks/draggable-window/DraggableWindow'; +import { useUiEvent } from '../../../../hooks/events/ui/ui-event'; +import { CameraWidgetViewProps } from './CameraWidgetView.types'; + +export const CameraWidgetView: FC = props => +{ + const [ isVisible, setIsVisible ] = useState(false); + + const onRoomWidgetCameraEvent = useCallback((event: RoomWidgetCameraEvent) => + { + switch(event.type) + { + case RoomWidgetCameraEvent.SHOW_CAMERA: + setIsVisible(true); + return; + case RoomWidgetCameraEvent.HIDE_CAMERA: + setIsVisible(false); + return; + case RoomWidgetCameraEvent.TOGGLE_CAMERA: + setIsVisible(value => !value); + return; + } + }, []); + + useUiEvent(RoomWidgetCameraEvent.SHOW_CAMERA, onRoomWidgetCameraEvent); + useUiEvent(RoomWidgetCameraEvent.HIDE_CAMERA, onRoomWidgetCameraEvent); + useUiEvent(RoomWidgetCameraEvent.TOGGLE_CAMERA, onRoomWidgetCameraEvent); + + const processAction = useCallback((type: string, value: string = null) => + { + switch(type) + { + case 'close': + setIsVisible(false); + return; + } + }, []); + + if(!isVisible) return null; + + return ( + +
+
+
processAction('close') }> + +
+
+
+
+
+
+
+ ); +} diff --git a/src/views/room/widgets/camera/CameraWidgetView.types.ts b/src/views/room/widgets/camera/CameraWidgetView.types.ts new file mode 100644 index 00000000..e97e9b69 --- /dev/null +++ b/src/views/room/widgets/camera/CameraWidgetView.types.ts @@ -0,0 +1,2 @@ +export interface CameraWidgetViewProps +{} diff --git a/src/views/toolbar/ToolbarView.tsx b/src/views/toolbar/ToolbarView.tsx index 6ab6a57e..fa8ccedb 100644 --- a/src/views/toolbar/ToolbarView.tsx +++ b/src/views/toolbar/ToolbarView.tsx @@ -2,6 +2,7 @@ import { UserInfoEvent } from 'nitro-renderer/src/nitro/communication/messages/i import { UserInfoDataParser } from 'nitro-renderer/src/nitro/communication/messages/parser/user/data/UserInfoDataParser'; import { FC, useCallback, useState } from 'react'; import { AvatarEditorEvent, CatalogEvent, FriendListEvent, InventoryEvent, NavigatorEvent } from '../../events'; +import { RoomWidgetCameraEvent } from '../../events/room-widgets/camera/RoomWidgetCameraEvent'; import { dispatchUiEvent } from '../../hooks/events/ui/ui-event'; import { CreateMessageHook } from '../../hooks/messages/message-event'; import { TransitionAnimation } from '../../transitions/TransitionAnimation'; @@ -44,6 +45,9 @@ export const ToolbarView: FC = props => case ToolbarViewItems.FRIEND_LIST_ITEM: dispatchUiEvent(new CatalogEvent(FriendListEvent.TOGGLE_FRIEND_LIST)); return; + case ToolbarViewItems.CAMERA_ITEM: + dispatchUiEvent(new RoomWidgetCameraEvent(RoomWidgetCameraEvent.TOGGLE_CAMERA)); + return; case ToolbarViewItems.CLOTHING_ITEM: dispatchUiEvent(new AvatarEditorEvent(AvatarEditorEvent.TOGGLE_EDITOR)); setMeExpanded(false); @@ -101,6 +105,10 @@ export const ToolbarView: FC = props => { (unseenFriendListCount > 0) && (
{ unseenFriendListCount }
) }
+ { isInRoom && ( +
handleToolbarItemClick(ToolbarViewItems.CAMERA_ITEM) }> + +
) }
diff --git a/src/views/toolbar/ToolbarView.types.ts b/src/views/toolbar/ToolbarView.types.ts index b0b97068..6c280e6c 100644 --- a/src/views/toolbar/ToolbarView.types.ts +++ b/src/views/toolbar/ToolbarView.types.ts @@ -10,4 +10,5 @@ export class ToolbarViewItems public static CATALOG_ITEM: string = 'TVI_CATALOG_ITEM'; public static FRIEND_LIST_ITEM: string = 'TVI_FRIEND_LIST_ITEM'; public static CLOTHING_ITEM: string = 'TVI_CLOTHING_ITEM'; + public static CAMERA_ITEM: string = 'TVI_CAMERA_ITEM'; }