diff --git a/src/views/floorplan-editor/FloorplanEditorView.scss b/src/views/floorplan-editor/FloorplanEditorView.scss
index 7bc41e59..dcacff14 100644
--- a/src/views/floorplan-editor/FloorplanEditorView.scss
+++ b/src/views/floorplan-editor/FloorplanEditorView.scss
@@ -9,9 +9,11 @@
overflow: scroll;
}
- .color {
- height: 50px;
- width: 10px;
+ .arrow-button {
+
+ @include media-breakpoint-up(md) {
+ display:none;
+ }
}
}
diff --git a/src/views/floorplan-editor/common/FloorplanEditor.ts b/src/views/floorplan-editor/common/FloorplanEditor.ts
index 71fcbed9..7d1aad13 100644
--- a/src/views/floorplan-editor/common/FloorplanEditor.ts
+++ b/src/views/floorplan-editor/common/FloorplanEditor.ts
@@ -87,10 +87,10 @@ export class FloorplanEditor extends PixiApplicationProxy
this._tilemapRenderer.on('pointerdown', (event: PixiInteractionEventProxy) =>
{
- if(!(event.data.originalEvent instanceof PointerEvent)) return;
+ if(!(event.data.originalEvent instanceof PointerEvent) && !(event.data.originalEvent instanceof TouchEvent)) return;
const pointerEvent = event.data.originalEvent;
- if(pointerEvent.button === 2) return;
+ if((pointerEvent instanceof MouseEvent) && pointerEvent.button === 2) return;
const location = event.data.global;
diff --git a/src/views/floorplan-editor/views/FloorplanCanvasView.tsx b/src/views/floorplan-editor/views/FloorplanCanvasView.tsx
index f68a9248..a52fae94 100644
--- a/src/views/floorplan-editor/views/FloorplanCanvasView.tsx
+++ b/src/views/floorplan-editor/views/FloorplanCanvasView.tsx
@@ -1,6 +1,7 @@
import { GetOccupiedTilesMessageComposer, GetRoomEntryTileMessageComposer, NitroPoint, RoomEntryTileMessageEvent, RoomOccupiedTilesMessageEvent } from '@nitrots/nitro-renderer';
import { FC, useCallback, useEffect, useRef, useState } from 'react';
import { CreateMessageHook, SendMessageHook, UseMountEffect } from '../../../hooks';
+import { NitroLayoutFlex } from '../../../layout';
import { FloorplanEditor } from '../common/FloorplanEditor';
import { useFloorplanEditorContext } from '../context/FloorplanEditorContext';
@@ -68,6 +69,29 @@ export const FloorplanCanvasView: FC<{}> = props =>
CreateMessageHook(RoomEntryTileMessageEvent, onRoomEntryTileMessageEvent);
+ const onClickArrowButton = useCallback((scrollDirection: string) =>
+ {
+ const element = elementRef.current;
+
+ if(!element) return;
+
+ switch(scrollDirection)
+ {
+ case 'up':
+ element.scrollBy({ top: -10 });
+ break;
+ case 'down':
+ element.scrollBy({ top: 10 });
+ break;
+ case 'left':
+ element.scrollBy({ left: -10 });
+ break;
+ case 'right':
+ element.scrollBy({ left: 10 });
+ break;
+ }
+ }, []);
+
useEffect(() =>
{
if(entryTileReceived && occupiedTilesReceived)
@@ -75,6 +99,18 @@ export const FloorplanCanvasView: FC<{}> = props =>
}, [entryTileReceived, occupiedTilesReceived])
return (
-
+ <>
+
+
+
+
+
+
+
+
+
+
+
+ >
);
}
diff --git a/src/views/main/MainView.tsx b/src/views/main/MainView.tsx
index ca00b8dc..e9eaab4f 100644
--- a/src/views/main/MainView.tsx
+++ b/src/views/main/MainView.tsx
@@ -1,6 +1,6 @@
-import { RoomSessionEvent } from '@nitrots/nitro-renderer';
+import { HabboWebTools, RoomSessionEvent } from '@nitrots/nitro-renderer';
import { FC, useCallback, useEffect, useState } from 'react';
-import { GetCommunication } from '../../api';
+import { AddEventLinkTracker, GetCommunication, RemoveLinkEventTracker } from '../../api';
import { useRoomSessionManagerEvent } from '../../hooks/events/nitro/session/room-session-manager-event';
import { TransitionAnimation, TransitionAnimationTypes } from '../../layout';
import { AchievementsView } from '../achievements/AchievementsView';
@@ -47,6 +47,32 @@ export const MainView: FC = props =>
useRoomSessionManagerEvent(RoomSessionEvent.CREATED, onRoomSessionEvent);
useRoomSessionManagerEvent(RoomSessionEvent.ENDED, onRoomSessionEvent);
+ const onLinkReceived = useCallback((link: string) =>
+ {
+ const parts = link.split('/');
+
+ if(parts.length < 2) return;
+
+ switch(parts[1])
+ {
+ case 'open':
+ if(parts.length > 2)
+ {
+ switch(parts[2])
+ {
+ case 'credits':
+ //HabboWebTools.openWebPageAndMinimizeClient(this._windowManager.getProperty(ExternalVariables.WEB_SHOP_RELATIVE_URL));
+ break;
+ default: {
+ const name = parts[2];
+ HabboWebTools.openHabblet(name);
+ }
+ }
+ }
+ return;
+ }
+ }, []);
+
useEffect(() =>
{
setIsReady(true);
@@ -54,6 +80,17 @@ export const MainView: FC = props =>
GetCommunication().connection.onReady();
}, []);
+ useEffect(() =>
+ {
+ const linkTracker = { linkReceived: onLinkReceived, eventUrlPrefix: 'habblet/' };
+ AddEventLinkTracker(linkTracker);
+
+ return () =>
+ {
+ RemoveLinkEventTracker(linkTracker);
+ }
+ }, [onLinkReceived]);
+
return (
diff --git a/src/views/navigator/NavigatorView.tsx b/src/views/navigator/NavigatorView.tsx
index d26d9147..62f8acad 100644
--- a/src/views/navigator/NavigatorView.tsx
+++ b/src/views/navigator/NavigatorView.tsx
@@ -1,7 +1,8 @@
-import { ILinkEventTracker, NavigatorInitComposer, NavigatorSearchComposer, RoomDataParser, RoomSessionEvent } from '@nitrots/nitro-renderer';
+import { ConvertGlobalRoomIdMessageComposer, HabboWebTools, ILinkEventTracker, LegacyExternalInterface, NavigatorInitComposer, NavigatorSearchComposer, RoomDataParser, RoomSessionEvent } from '@nitrots/nitro-renderer';
import { FC, useCallback, useEffect, useMemo, useReducer, useState } from 'react';
import { AddEventLinkTracker, GoToDesktop, LocalizeText, RemoveLinkEventTracker, TryVisitRoom } from '../../api';
import { NavigatorEvent, UpdateDoorStateEvent } from '../../events';
+import { UseMountEffect } from '../../hooks';
import { useRoomSessionManagerEvent } from '../../hooks/events/nitro/session/room-session-manager-event';
import { useUiEvent } from '../../hooks/events/ui/ui-event';
import { SendMessageHook } from '../../hooks/messages/message-event';
@@ -181,6 +182,16 @@ export const NavigatorView: FC = props =>
return () => RemoveLinkEventTracker(linkTracker);
}, [ linkReceived]);
+ const enterRoomWebRequest = useCallback((k: string, _arg_2:boolean=false, _arg_3:string=null) =>
+ {
+ SendMessageHook(new ConvertGlobalRoomIdMessageComposer(k));
+ }, []);
+
+ UseMountEffect(() =>
+ {
+ LegacyExternalInterface.addCallback(HabboWebTools.OPENROOM, enterRoomWebRequest);
+ });
+
useEffect(() =>
{
if(!isVisible || !needsNavigatorUpdate) return;