Merge branch 'dev' into purse-redesign

This commit is contained in:
Layne 2021-07-23 00:57:05 -04:00
commit 1106e1cb58
418 changed files with 11066 additions and 2266 deletions

709
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -3,16 +3,16 @@
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@testing-library/jest-dom": "^5.11.10", "@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^11.2.6", "@testing-library/react": "^11.2.7",
"@testing-library/user-event": "^12.8.3", "@testing-library/user-event": "^12.8.3",
"@types/jest": "^26.0.22", "@types/jest": "^26.0.24",
"@types/node": "^12.20.7", "@types/node": "^12.20.16",
"@types/react": "^17.0.3", "@types/react": "^17.0.14",
"@types/react-dom": "^17.0.3", "@types/react-dom": "^17.0.9",
"animate.css": "^4.1.1", "animate.css": "^4.1.1",
"classnames": "^2.3.1", "classnames": "^2.3.1",
"immutable": "^4.0.0-rc.12", "immutable": "^4.0.0-rc.14",
"nitro-renderer": "file:../nitro-renderer", "nitro-renderer": "file:../nitro-renderer",
"node-sass": "^5.0.0", "node-sass": "^5.0.0",
"rc-slider": "^9.7.2", "rc-slider": "^9.7.2",
@ -21,12 +21,13 @@
"react-dom": "^17.0.2", "react-dom": "^17.0.2",
"react-draggable": "^4.4.3", "react-draggable": "^4.4.3",
"react-google-recaptcha": "^2.1.0", "react-google-recaptcha": "^2.1.0",
"react-redux": "^7.2.3", "react-input-autosize": "^3.0.0",
"react-redux": "^7.2.4",
"react-scripts": "4.0.3", "react-scripts": "4.0.3",
"react-transition-group": "^4.4.1", "react-slider": "^1.3.1",
"redux": "^4.0.5", "react-transition-group": "^4.4.2",
"typescript": "^4.2.4", "typescript": "^4.3.5",
"web-vitals": "^1.1.1" "web-vitals": "^1.1.2"
}, },
"scripts": { "scripts": {
"postinstall": "node ./webpack-patcher.js", "postinstall": "node ./webpack-patcher.js",
@ -59,7 +60,7 @@
] ]
}, },
"devDependencies": { "devDependencies": {
"@types/react-slider": "^1.3.0", "@types/react-slider": "^1.3.1",
"@types/react-transition-group": "^4.4.1" "@types/react-transition-group": "^4.4.2"
} }
} }

View File

@ -19,7 +19,7 @@
"avatar.asset.url": "${asset.url}/bundled/figure/%libname%.nitro", "avatar.asset.url": "${asset.url}/bundled/figure/%libname%.nitro",
"avatar.asset.effect.url": "${asset.url}/bundled/effect/%libname%.nitro", "avatar.asset.effect.url": "${asset.url}/bundled/effect/%libname%.nitro",
"furni.extras.url": "${asset.url}/images/furniextras/%image%.png", "furni.extras.url": "${asset.url}/images/furniextras/%image%.png",
"url.prefix": "", "url.prefix": "http://localhost:3000",
"chat.viewer.height.percentage": 0.40, "chat.viewer.height.percentage": 0.40,
"auth.system.enabled": true, "auth.system.enabled": true,
"auth.system.http.enabled": true, "auth.system.http.enabled": true,
@ -1169,6 +1169,7 @@
"${images.url}/additions/number_3.png", "${images.url}/additions/number_3.png",
"${images.url}/additions/number_4.png", "${images.url}/additions/number_4.png",
"${images.url}/additions/number_5.png", "${images.url}/additions/number_5.png",
"${images.url}/additions/pet_experience_bubble.png",
"${images.url}/loading_icon.png", "${images.url}/loading_icon.png",
"${images.url}/clear_icon.png", "${images.url}/clear_icon.png",
"${images.url}/big_arrow.png" "${images.url}/big_arrow.png"

View File

@ -1,6 +1,6 @@
import { ConfigurationEvent, LegacyExternalInterface, Nitro, NitroCommunicationDemoEvent, NitroEvent, NitroLocalizationEvent, RoomEngineEvent, WebGL } from 'nitro-renderer'; import { ConfigurationEvent, LegacyExternalInterface, Nitro, NitroCommunicationDemoEvent, NitroEvent, NitroLocalizationEvent, RoomEngineEvent, WebGL } from 'nitro-renderer';
import { FC, useCallback, useState } from 'react'; import { FC, useCallback, useState } from 'react';
import { GetConfiguration } from './api'; import { GetCommunication, GetConfiguration, GetNitroInstance } from './api';
import { useConfigurationEvent } from './hooks/events/core/configuration/configuration-event'; import { useConfigurationEvent } from './hooks/events/core/configuration/configuration-event';
import { useLocalizationEvent } from './hooks/events/nitro/localization/localization-event'; import { useLocalizationEvent } from './hooks/events/nitro/localization/localization-event';
import { dispatchMainEvent, useMainEvent } from './hooks/events/nitro/main-event'; import { dispatchMainEvent, useMainEvent } from './hooks/events/nitro/main-event';
@ -19,7 +19,7 @@ export const App: FC<{}> = props =>
//@ts-ignore //@ts-ignore
if(!NitroConfig) throw new Error('NitroConfig is not defined!'); if(!NitroConfig) throw new Error('NitroConfig is not defined!');
if(!Nitro.instance) Nitro.bootstrap(); if(!GetNitroInstance()) Nitro.bootstrap();
const getPreloadAssetUrls = useCallback(() => const getPreloadAssetUrls = useCallback(() =>
{ {
@ -28,7 +28,7 @@ export const App: FC<{}> = props =>
if(assetUrls && assetUrls.length) if(assetUrls && assetUrls.length)
{ {
for(const url of assetUrls) urls.push(Nitro.instance.core.configuration.interpolate(url)); for(const url of assetUrls) urls.push(GetNitroInstance().core.configuration.interpolate(url));
} }
return urls; return urls;
@ -39,7 +39,7 @@ export const App: FC<{}> = props =>
switch(event.type) switch(event.type)
{ {
case ConfigurationEvent.LOADED: case ConfigurationEvent.LOADED:
Nitro.instance.localization.init(); GetNitroInstance().localization.init();
return; return;
case ConfigurationEvent.FAILED: case ConfigurationEvent.FAILED:
setIsError(true); setIsError(true);
@ -73,14 +73,14 @@ export const App: FC<{}> = props =>
case NitroCommunicationDemoEvent.CONNECTION_AUTHENTICATED: case NitroCommunicationDemoEvent.CONNECTION_AUTHENTICATED:
setMessage('Finishing Up'); setMessage('Finishing Up');
Nitro.instance.init(); GetNitroInstance().init();
return; return;
case NitroCommunicationDemoEvent.CONNECTION_ERROR: case NitroCommunicationDemoEvent.CONNECTION_ERROR:
setIsError(true); setIsError(true);
setMessage('Connection Error'); setMessage('Connection Error');
return; return;
case NitroCommunicationDemoEvent.CONNECTION_CLOSED: case NitroCommunicationDemoEvent.CONNECTION_CLOSED:
if(Nitro.instance.roomEngine) Nitro.instance.roomEngine.dispose(); if(GetNitroInstance().roomEngine) GetNitroInstance().roomEngine.dispose();
setIsError(true); setIsError(true);
setMessage('Connection Error'); setMessage('Connection Error');
@ -91,13 +91,13 @@ export const App: FC<{}> = props =>
setIsReady(true); setIsReady(true);
return; return;
case NitroLocalizationEvent.LOADED: case NitroLocalizationEvent.LOADED:
Nitro.instance.core.asset.downloadAssets(getPreloadAssetUrls(), (status: boolean) => GetNitroInstance().core.asset.downloadAssets(getPreloadAssetUrls(), (status: boolean) =>
{ {
if(status) if(status)
{ {
setMessage('Connecting'); setMessage('Connecting');
Nitro.instance.communication.init(); GetCommunication().init();
} }
else else
{ {
@ -127,7 +127,7 @@ export const App: FC<{}> = props =>
} }
else else
{ {
Nitro.instance.core.configuration.init(); GetNitroInstance().core.configuration.init();
} }
return ( return (

View File

@ -1,6 +0,0 @@
import { CatalogPageComposer } from 'nitro-renderer';
export function GetCatalogPageComposer(...args: ConstructorParameters<typeof CatalogPageComposer>): CatalogPageComposer
{
return new CatalogPageComposer(...args);
}

View File

@ -0,0 +1,7 @@
import { IConfigurationManager } from 'nitro-renderer';
import { GetNitroCore } from './GetNitroCore';
export function GetConfigurationManager(): IConfigurationManager
{
return GetNitroCore().configuration;
}

View File

@ -0,0 +1,7 @@
import { INitroCore } from 'nitro-renderer';
import { GetNitroInstance } from '../nitro';
export function GetNitroCore(): INitroCore
{
return GetNitroInstance().core;
}

2
src/api/core/index.ts Normal file
View File

@ -0,0 +1,2 @@
export * from './GetConfigurationManager';
export * from './GetNitroCore';

View File

@ -1 +1,2 @@
export * from './core';
export * from './nitro'; export * from './nitro';

View File

@ -0,0 +1,7 @@
import { ILinkEventTracker } from 'nitro-renderer';
import { GetNitroInstance } from './GetNitroInstance';
export function AddEventLinkTracker(tracker: ILinkEventTracker): void
{
GetNitroInstance().addLinkEventTracker(tracker);
}

View File

@ -0,0 +1,7 @@
import { INitroCommunicationManager } from 'nitro-renderer';
import { GetNitroInstance } from './GetNitroInstance';
export function GetCommunication(): INitroCommunicationManager
{
return GetNitroInstance().communication;
}

View File

@ -1,6 +1,6 @@
import { Nitro } from 'nitro-renderer'; import { GetNitroInstance } from './GetNitroInstance';
export function GetConfiguration<T>(key: string, value: T = null): T export function GetConfiguration<T>(key: string, value: T = null): T
{ {
return Nitro.instance.getConfiguration(key, value); return GetNitroInstance().getConfiguration(key, value);
} }

View File

@ -1,6 +1,7 @@
import { IConnection, Nitro } from 'nitro-renderer'; import { IConnection } from 'nitro-renderer';
import { GetCommunication } from './GetCommunication';
export function GetConnection(): IConnection export function GetConnection(): IConnection
{ {
return Nitro.instance.communication.connection; return GetCommunication().connection;
} }

View File

@ -0,0 +1,6 @@
import { INitro, Nitro } from 'nitro-renderer';
export function GetNitroInstance(): INitro
{
return Nitro.instance;
}

View File

@ -1,6 +1,6 @@
import { Nitro } from 'nitro-renderer'; import { GetNitroInstance } from './GetNitroInstance';
export function GetTicker() export function GetTicker()
{ {
return Nitro.instance.ticker; return GetNitroInstance().ticker;
} }

View File

@ -0,0 +1,7 @@
import { ILinkEventTracker } from 'nitro-renderer';
import { GetNitroInstance } from './GetNitroInstance';
export function RemoveLinkEventTracker(tracker: ILinkEventTracker): void
{
GetNitroInstance().removeLinkEventTracker(tracker);
}

View File

@ -0,0 +1,7 @@
import { IPalette } from 'nitro-renderer';
import { GetAvatarRenderManager } from './GetAvatarRenderManager';
export function GetAvatarPalette(paletteId: number): IPalette
{
return GetAvatarRenderManager().structureData.getPalette(paletteId);
}

View File

@ -1,6 +1,7 @@
import { IAvatarRenderManager, Nitro } from 'nitro-renderer'; import { IAvatarRenderManager } from 'nitro-renderer';
import { GetNitroInstance } from '../GetNitroInstance';
export function GetAvatarRenderManager(): IAvatarRenderManager export function GetAvatarRenderManager(): IAvatarRenderManager
{ {
return Nitro.instance.avatar; return GetNitroInstance().avatar;
} }

View File

@ -0,0 +1,7 @@
import { ISetType } from 'nitro-renderer';
import { GetAvatarRenderManager } from './GetAvatarRenderManager';
export function GetAvatarSetType(setType: string): ISetType
{
return GetAvatarRenderManager().structureData.getSetType(setType);
}

View File

@ -1 +1,3 @@
export * from './GetAvatarPalette';
export * from './GetAvatarRenderManager'; export * from './GetAvatarRenderManager';
export * from './GetAvatarSetType';

View File

@ -1,7 +1,7 @@
import { Nitro } from 'nitro-renderer';
import { IRoomCameraWidgetManager } from 'nitro-renderer/src/nitro/camera/IRoomCameraWidgetManager'; import { IRoomCameraWidgetManager } from 'nitro-renderer/src/nitro/camera/IRoomCameraWidgetManager';
import { GetNitroInstance } from '../GetNitroInstance';
export function GetRoomCameraWidgetManager(): IRoomCameraWidgetManager export function GetRoomCameraWidgetManager(): IRoomCameraWidgetManager
{ {
return Nitro.instance.cameraManager; return GetNitroInstance().cameraManager;
} }

View File

@ -1,7 +1,11 @@
export * from './AddLinkEventTracker';
export * from './avatar'; export * from './avatar';
export * from './camera'; export * from './camera';
export * from './GetCommunication';
export * from './GetConfiguration'; export * from './GetConfiguration';
export * from './GetConnection'; export * from './GetConnection';
export * from './GetNitroInstance';
export * from './GetTicker'; export * from './GetTicker';
export * from './RemoveLinkEventTracker';
export * from './room'; export * from './room';
export * from './session'; export * from './session';

View File

@ -1,22 +0,0 @@
import { Nitro } from 'nitro-renderer';
import { InitializeRoomInstanceRenderingCanvas } from './InitializeRoomInstanceRenderingCanvas';
let resizeTimer: ReturnType<typeof setTimeout> = null;
export function WindowResizeEvent(roomId: number, canvasId: number)
{
if(resizeTimer) clearTimeout(resizeTimer);
resizeTimer = setTimeout(() =>
{
Nitro.instance.renderer.resize(window.innerWidth, window.innerHeight);
InitializeRoomInstanceRenderingCanvas(roomId, canvasId, Nitro.instance.width, Nitro.instance.height);
//this._events.dispatchEvent(new RoomWidgetRoomViewUpdateEvent(RoomWidgetRoomViewUpdateEvent.SIZE_CHANGED, this.getRoomViewRect()));
//this.setRoomBackground();
Nitro.instance.render();
}, 1);
}

View File

@ -1,6 +1,7 @@
import { IRoomEngine, Nitro } from 'nitro-renderer'; import { IRoomEngine } from 'nitro-renderer';
import { GetNitroInstance } from '../GetNitroInstance';
export function GetRoomEngine(): IRoomEngine export function GetRoomEngine(): IRoomEngine
{ {
return Nitro.instance.roomEngine; return GetNitroInstance().roomEngine;
} }

View File

@ -1,5 +1,4 @@
export * from './DispatchMouseEvent'; export * from './DispatchMouseEvent';
export * from './DispatchResizeEvent';
export * from './DispatchTouchEvent'; export * from './DispatchTouchEvent';
export * from './GetOwnRoomObject'; export * from './GetOwnRoomObject';
export * from './GetRoomEngine'; export * from './GetRoomEngine';

View File

@ -0,0 +1,6 @@
import { GetSessionDataManager } from './GetSessionDataManager';
export function GetClubMemberLevel(): number
{
return GetSessionDataManager().clubLevel;
}

View File

@ -0,0 +1,22 @@
import { IFurnitureData, RoomObjectCategory, RoomObjectVariable } from 'nitro-renderer';
import { GetRoomEngine } from '../room';
import { GetSessionDataManager } from './GetSessionDataManager';
export function GetFurnitureDataForRoomObject(roomId: number, objectId: number, category: number): IFurnitureData
{
const roomObject = GetRoomEngine().getRoomObject(roomId, objectId, category);
if(!roomObject) return;
const typeId = roomObject.model.getValue<number>(RoomObjectVariable.FURNITURE_TYPE_ID);
switch(category)
{
case RoomObjectCategory.FLOOR:
return GetSessionDataManager().getFloorItemData(typeId);
case RoomObjectCategory.WALL:
return GetSessionDataManager().getWallItemData(typeId);
}
return null;
}

View File

@ -1,6 +1,7 @@
import { IRoomSessionManager, Nitro } from 'nitro-renderer'; import { IRoomSessionManager } from 'nitro-renderer';
import { GetNitroInstance } from '../GetNitroInstance';
export function GetRoomSessionManager(): IRoomSessionManager export function GetRoomSessionManager(): IRoomSessionManager
{ {
return Nitro.instance.roomSessionManager; return GetNitroInstance().roomSessionManager;
} }

View File

@ -1,6 +1,7 @@
import { ISessionDataManager, Nitro } from 'nitro-renderer'; import { ISessionDataManager } from 'nitro-renderer';
import { GetNitroInstance } from '../GetNitroInstance';
export function GetSessionDataManager(): ISessionDataManager export function GetSessionDataManager(): ISessionDataManager
{ {
return Nitro.instance.sessionDataManager; return GetNitroInstance().sessionDataManager;
} }

View File

@ -1,7 +1,9 @@
export * from './CanManipulateFurniture'; export * from './CanManipulateFurniture';
export * from './GetCanStandUp'; export * from './GetCanStandUp';
export * from './GetCanUseExpression'; export * from './GetCanUseExpression';
export * from './GetClubMemberLevel';
export * from './GetFurnitureDataForProductOffer'; export * from './GetFurnitureDataForProductOffer';
export * from './GetFurnitureDataForRoomObject';
export * from './GetOwnPosture'; export * from './GetOwnPosture';
export * from './GetProductDataForLocalization'; export * from './GetProductDataForLocalization';
export * from './GetRoomSession'; export * from './GetRoomSession';

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 B

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 B

After

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 B

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 B

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 B

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 B

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 B

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 B

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 B

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 B

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 B

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 B

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 B

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 B

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 B

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 B

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 B

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

After

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 B

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 B

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 B

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 B

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 B

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 B

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 B

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

After

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 B

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 883 B

View File

@ -78,7 +78,10 @@ $mirage: #131e25 !default;
$aztec: #0d171d !default; $aztec: #0d171d !default;
$cello-light: #21516e !default; $cello-light: #21516e !default;
$cello-dark: #1e465e !default; $cello-dark: #1e465e !default;
$pale-sky: #677181 !default;
$oslo-gray: #8F9297 !default;
$ghost: #c8cad0 !default;
$gray-chateau: #a3a7b1 !default;
$success: $green !default; $success: $green !default;
$info: $cyan !default; $info: $cyan !default;
$warning: $yellow !default; $warning: $yellow !default;

View File

@ -2,15 +2,12 @@
line-height: 0 !important; line-height: 0 !important;
} }
i { .icon {
&.icon {
display: inline-block; display: inline-block;
outline: 0; outline: 0;
background-color: transparent; background-color: transparent;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;
background-size: contain;
&.icon-nitro-light { &.icon-nitro-light {
background-image: url('../images/nitro/nitro-n-light.svg'); background-image: url('../images/nitro/nitro-n-light.svg');
@ -182,14 +179,14 @@ i {
&.clear-icon { &.clear-icon {
background-image: url('../images/avatareditor/clear-icon.png'); background-image: url('../images/avatareditor/clear-icon.png');
width: 16px; width: 27px;
height: 16px; height: 27px;
} }
&.ca-icon { &.ca-icon {
background-image: url('../images/avatareditor/ca-icon.png'); background-image: url('../images/avatareditor/ca-icon.png');
width: 30px; width: 25px;
height: 24px; height: 25px;
&.selected { &.selected {
background-image: url('../images/avatareditor/ca-selected-icon.png'); background-image: url('../images/avatareditor/ca-selected-icon.png');
@ -218,8 +215,8 @@ i {
&.cp-icon { &.cp-icon {
background-image: url('../images/avatareditor/cp-icon.png'); background-image: url('../images/avatareditor/cp-icon.png');
width: 25px; width: 30px;
height: 25px; height: 24px;
&.selected { &.selected {
background-image: url('../images/avatareditor/cp-selected-icon.png'); background-image: url('../images/avatareditor/cp-selected-icon.png');
@ -297,9 +294,9 @@ i {
} }
&.loading-icon { &.loading-icon {
background-image: url('../images/avatareditor/loading-icon.png'); background-image: url('../images/icons/loading-icon.png');
width: 21px; width: 17px;
height: 25px; height: 21px;
} }
&.male-icon { &.male-icon {
@ -332,6 +329,12 @@ i {
} }
} }
&.sellable-icon {
background-image: url('../images/avatareditor/sellable-icon.png');
width: 17px;
height: 15px;
}
&.chatstyles-icon { &.chatstyles-icon {
background-image: url('../images/chat/styles-icon.png'); background-image: url('../images/chat/styles-icon.png');
width: 17px; width: 17px;
@ -446,6 +449,30 @@ i {
height: 20px; height: 20px;
} }
&.icon-house-small {
background: url('../images/icons/house-small.png');
width: 19px;
height: 14px;
}
&.icon-camera-small {
background: url('../images/icons/camera-small.png');
width: 17px;
height: 15px;
}
&.icon-arrows {
background: url('../images/icons/arrows.png');
width: 17px;
height: 15px;
}
&.icon-fb-profile {
background: url('../images/toolbar/icons/friend-bar/profile.png');
width: 21px;
height: 21px;
}
&.icon-camera-colormatrix { &.icon-camera-colormatrix {
background: url('../images/icons/camera-colormatrix.png'); background: url('../images/icons/camera-colormatrix.png');
width: 32px; width: 32px;
@ -499,5 +526,4 @@ i {
transform: rotate(360deg); transform: rotate(360deg);
} }
} }
}
} }

View File

@ -5,6 +5,7 @@
@import './fontawesome/brands'; @import './fontawesome/brands';
@import './fontawesome/regular'; @import './fontawesome/regular';
@import './scrollbars'; @import './scrollbars';
@import './slider';
@import './grid'; @import './grid';
@import './icons'; @import './icons';
@import './utils'; @import './utils';

View File

@ -1,25 +1,21 @@
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 7px; width: 0.5rem;
height: 5px;
} }
::-webkit-scrollbar-track { ::-webkit-scrollbar-track {
border-radius: $border-radius; background-clip: padding-box;
background: rgba($black,.1); border-right: 0.25rem solid rgba($black, .1);
box-shadow:inset 0 0 1px 1px rgba($black,.1);
padding-top:3px;
} }
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
border-radius: $border-radius; background-clip: padding-box;
background: rgba($primary,.4); border-right: 0.25rem solid rgba($primary, .4);
width: 4px;
}
::-webkit-scrollbar-thumb:hover { &:hover {
background: rgba($primary,.8); border-right: 0.25rem solid rgba($primary, .8);
} }
::-webkit-scrollbar-thumb:active { &:active {
background: $secondary; border-right: 0.25rem solid $secondary;
}
} }

View File

@ -0,0 +1,54 @@
.nitro-slider {
display: flex;
align-items: center;
width: 100%;
height: 25px;
.track {
height: 3px;
border-radius: $border-radius;
overflow: hidden;
&.track-0 {
background-color: $primary;
}
&.track-1 {
background-color: $muted;
}
}
.thumb {
border-radius: 50%;
width: 25px;
height: 25px;
background-color: gray;
font-size: 10px;
text-align: center;
line-height: 25px;
padding: 0 3px;
&:hover,
.active {
cursor: pointer;
}
&.active {
outline: none;
}
&.degree {
&:after {
content: "\00b0"
}
}
&.percent {
&:after {
content: "\0025"
}
}
}
}

View File

@ -14,6 +14,10 @@
transform: scale(2) translateZ(0); transform: scale(2) translateZ(0);
} }
.opacity-0-5 {
opacity: 0.5;
}
.text-shadow { .text-shadow {
text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
} }
@ -39,22 +43,10 @@ ul {
pointer-events: none; pointer-events: none;
} }
.t-0 {
top: 0 !important;
}
.b-0 {
bottom: 0 !important;
}
.l-0 {
left: 0 !important;
}
.r-0 {
right: 0 !important;
}
.filter-none { .filter-none {
filter: unset !important; filter: unset !important;
} }
.w-unset {
width: unset;
}

View File

@ -0,0 +1,8 @@
import { NitroEvent } from 'nitro-renderer';
export class AchievementsUIEvent extends NitroEvent
{
public static SHOW_ACHIEVEMENTS: string = 'AE_SHOW_ACHIEVEMENTS';
public static HIDE_ACHIEVEMENTS: string = 'AE_HIDE_ACHIEVEMENTS';
public static TOGGLE_ACHIEVEMENTS: string = 'AE_TOGGLE_ACHIEVEMENTS';
}

View File

@ -0,0 +1 @@
export * from './AchievementsUIEvent';

View File

@ -0,0 +1,11 @@
import { RoomWidgetObjectNameEvent } from '../../views/room/events';
export class FriendEnteredRoomEvent extends RoomWidgetObjectNameEvent
{
public static ENTERED: string = 'FERE_ENTERED';
constructor(roomIndex: number, category: number, id: number, name: string, userType: number)
{
super(FriendEnteredRoomEvent.ENTERED, roomIndex, category, id, name, userType);
}
}

View File

@ -0,0 +1,20 @@
import { FriendListEvent } from './FriendListEvent';
export class FriendListSendFriendRequestEvent extends FriendListEvent
{
public static SEND_FRIEND_REQUEST: string = 'FLSFRE_SEND_FRIEND_REQUEST';
private _userId: number;
constructor(userId: number)
{
super(FriendListSendFriendRequestEvent.SEND_FRIEND_REQUEST);
this._userId = userId;
}
public get userId(): number
{
return this._userId;
}
}

View File

@ -1 +1,2 @@
export * from './FriendEnteredRoomEvent';
export * from './FriendListEvent'; export * from './FriendListEvent';

View File

@ -0,0 +1,27 @@
import { InventoryEvent } from './InventoryEvent';
export class InventoryTradeRequestEvent extends InventoryEvent
{
public static REQUEST_TRADE: string = 'ITSE_REQUEST_TRADE';
private _objectId: number;
private _username: string;
constructor(objectId: number, username: string)
{
super(InventoryTradeRequestEvent.REQUEST_TRADE);
this._objectId = objectId;
this._username = username;
}
public get objectId(): number
{
return this._objectId;
}
public get username(): string
{
return this._username;
}
}

View File

@ -0,0 +1,28 @@
import { TradeUserData } from '../../views/inventory/common/TradeUserData';
import { InventoryEvent } from './InventoryEvent';
export class InventoryTradeStartEvent extends InventoryEvent
{
public static START_TRADE: string = 'ITSE_START_TRADE';
private _ownUserTradeData: TradeUserData;
private _otherUserTradeData: TradeUserData;
constructor(ownUserTradeData: TradeUserData, otherUserTradeData: TradeUserData)
{
super(InventoryTradeStartEvent.START_TRADE);
this._ownUserTradeData = ownUserTradeData;
this._otherUserTradeData = otherUserTradeData;
}
public get ownUserTradeData(): TradeUserData
{
return this._ownUserTradeData;
}
public get otherUserTradeData(): TradeUserData
{
return this._otherUserTradeData;
}
}

View File

@ -0,0 +1,20 @@
import { NitroEvent } from 'nitro-renderer';
export class UnseenItemTrackerUpdateEvent extends NitroEvent
{
public static UPDATE_COUNT: string = 'UITUE_UPDATE_COUNTER';
private _count: number;
constructor(count: number)
{
super(UnseenItemTrackerUpdateEvent.UPDATE_COUNT);
this._count = count;
}
public get count(): number
{
return this._count;
}
}

View File

@ -1 +1,4 @@
export * from './InventoryEvent'; export * from './InventoryEvent';
export * from './InventoryTradeRequestEvent';
export * from './InventoryTradeStartEvent';
export * from './UnseenItemTrackerUpdateEvent';

View File

@ -0,0 +1,10 @@
import { NitroEvent } from 'nitro-renderer';
export class ModToolsEvent extends NitroEvent
{
public static SHOW_MOD_TOOLS: string = 'MTE_SHOW_MOD_TOOLS';
public static HIDE_MOD_TOOLS: string = 'MTE_HIDE_MOD_TOOLS';
public static TOGGLE_MOD_TOOLS: string = 'MTE_TOGGLE_MOD_TOOLS';
public static SELECT_USER: string = 'MTE_SELECT_USER';
public static OPEN_ROOM_INFO: string = 'MTE_OPEN_ROOM_INFO';
}

View File

@ -0,0 +1,18 @@
import { ModToolsEvent } from './ModToolsEvent';
export class ModToolsOpenRoomInfoEvent extends ModToolsEvent
{
private _roomId: number;
constructor(roomId: number)
{
super(ModToolsEvent.OPEN_ROOM_INFO);
this._roomId = roomId;
}
public get roomId(): number
{
return this._roomId;
}
}

View File

@ -0,0 +1,25 @@
import { ModToolsEvent } from './ModToolsEvent';
export class ModToolsSelectUserEvent extends ModToolsEvent
{
private _webID: number;
private _name: string;
constructor(webID: number, name: string)
{
super(ModToolsEvent.SELECT_USER);
this._webID = webID;
this._name = name;
}
public get webID(): number
{
return this._webID;
}
public get name(): string
{
return this._name;
}
}

View File

@ -5,6 +5,9 @@ export class NavigatorEvent extends NitroEvent
public static SHOW_NAVIGATOR: string = 'NE_SHOW_NAVIGATOR'; public static SHOW_NAVIGATOR: string = 'NE_SHOW_NAVIGATOR';
public static HIDE_NAVIGATOR: string = 'NE_HIDE_NAVIGATOR'; public static HIDE_NAVIGATOR: string = 'NE_HIDE_NAVIGATOR';
public static TOGGLE_NAVIGATOR: string = 'NE_TOGGLE_NAVIGATOR'; public static TOGGLE_NAVIGATOR: string = 'NE_TOGGLE_NAVIGATOR';
public static TOGGLE_ROOM_INFO: string = 'NE_TOGGLE_ROOM_INFO';
public static TOGGLE_ROOM_LINK: string = 'NE_TOGGLE_ROOM_LINK';
public static TOGGLE_ROOM_SETTINGS: string = 'NE_TOGGLE_ROOM_SETTINGS';
private _roomId: number; private _roomId: number;
private _password: string; private _password: string;

View File

@ -0,0 +1,34 @@
import { NitroEvent } from 'nitro-renderer';
export class NotificationCenterAlertEvent extends NitroEvent
{
public static HOTEL_ALERT: string = 'NCAE_HOTEL_ALERT';
private _message: string[];
private _clickUrl: string;
private _headerText: string;
constructor(type: string, message: string[], clickUrl = null, headerText = null)
{
super(type);
this._message = message;
this._clickUrl = clickUrl;
this._headerText = headerText;
}
public get message(): string[]
{
return this._message;
}
public get clickUrl(): string
{
return this._clickUrl;
}
public get headerText(): string
{
return this._headerText;
}
}

View File

@ -1,2 +1,3 @@
export * from './NotificationCenterAddNotificationEvent'; export * from './NotificationCenterAddNotificationEvent';
export * from './NotificationCenterAlertEvent';
export * from './NotificationCenterEvent'; export * from './NotificationCenterEvent';

View File

@ -0,0 +1,8 @@
import { RoomWidgetUpdateEvent } from '../../../views/room/events/RoomWidgetUpdateEvent';
export class RoomWidgetThumbnailEvent extends RoomWidgetUpdateEvent
{
public static SHOW_THUMBNAIL: string = 'NE_SHOW_THUMBNAIL';
public static HIDE_THUMBNAIL: string = 'NE_HIDE_THUMBNAIL';
public static TOGGLE_THUMBNAIL: string = 'NE_TOGGLE_THUMBNAIL';
}

View File

@ -0,0 +1 @@
export * from './RoomWidgetThumbnailEvent';

View File

@ -0,0 +1,3 @@
import { useEffect } from 'react';
export const UseMountEffect = (fun: Function) => useEffect(() => fun(), []);

View File

@ -1,8 +1,8 @@
import { NitroEvent } from 'nitro-renderer'; import { NitroEvent } from 'nitro-renderer';
import { Nitro } from 'nitro-renderer/src/nitro/Nitro'; import { GetCommunication } from '../../../../api';
import { CreateEventDispatcherHook } from '../../event-dispatcher.base'; import { CreateEventDispatcherHook } from '../../event-dispatcher.base';
export function useCommunicationEvent(type: string, handler: (event: NitroEvent) => void): void export function useCommunicationEvent(type: string, handler: (event: NitroEvent) => void): void
{ {
CreateEventDispatcherHook(type, Nitro.instance.communication.events, handler); CreateEventDispatcherHook(type, GetCommunication().events, handler);
} }

View File

@ -1,8 +1,8 @@
import { NitroEvent } from 'nitro-renderer'; import { NitroEvent } from 'nitro-renderer';
import { Nitro } from 'nitro-renderer/src/nitro/Nitro'; import { GetConfigurationManager } from '../../../../api';
import { CreateEventDispatcherHook } from '../../event-dispatcher.base'; import { CreateEventDispatcherHook } from '../../event-dispatcher.base';
export function useConfigurationEvent(type: string, handler: (event: NitroEvent) => void): void export function useConfigurationEvent(type: string, handler: (event: NitroEvent) => void): void
{ {
CreateEventDispatcherHook(type, Nitro.instance.core.configuration.events, handler); CreateEventDispatcherHook(type, GetConfigurationManager().events, handler);
} }

View File

@ -1 +1,2 @@
export * from './communication';
export * from './configuration'; export * from './configuration';

Some files were not shown because too many files have changed in this diff Show More