Avatar updates

This commit is contained in:
Bill 2021-08-31 22:39:15 -04:00
parent b04927df60
commit eec32854ea
3 changed files with 15 additions and 13 deletions

View File

@ -21,7 +21,7 @@ export const AvatarEditorPaletteSetItem: FC<AvatarEditorPaletteSetItemProps> = p
{
colorItem.notify = null;
}
})
});
return (
<NitroCardGridItemView itemColor={ colorItem.color } itemActive={ colorItem.isSelected } { ...rest }>

View File

@ -1,7 +1,7 @@
import { SaveWardrobeOutfitMessageComposer } from '@nitrots/nitro-renderer';
import { FC, useCallback, useMemo } from 'react';
import { Button } from 'react-bootstrap';
import { GetAvatarRenderManager } from '../../../../api';
import { GetAvatarRenderManager, GetSessionDataManager } from '../../../../api';
import { SendMessageHook } from '../../../../hooks';
import { NitroCardGridItemView } from '../../../../layout/card/grid/item/NitroCardGridItemView';
import { NitroCardGridView } from '../../../../layout/card/grid/NitroCardGridView';
@ -40,21 +40,23 @@ export const AvatarEditorWardrobeView: FC<AvatarEditorWardrobeViewProps> = props
const figures = useMemo(() =>
{
if(!savedFigures) return [];
if(!savedFigures || !savedFigures.length) return [];
const items: JSX.Element[] = [];
savedFigures.forEach(([ figureContainer, gender ], index) =>
{
const clubLevel = GetAvatarRenderManager().getFigureClubLevel(figureContainer, gender);
let clubLevel = 0;
if(figureContainer) clubLevel = GetAvatarRenderManager().getFigureClubLevel(figureContainer, gender);
items.push(
<NitroCardGridItemView key={ index } className="flex-column justify-content-end">
<NitroCardGridItemView key={ index } className="flex-column justify-content-end position-relative">
{ figureContainer && <AvatarImageView figure={ figureContainer.getFigureString() } gender={ gender } direction={ 2 } /> }
{ clubLevel > 0 && <CurrencyIcon type="hc" /> }
{ (clubLevel > 0) && <CurrencyIcon className="position-absolute top-1 start-1" type="hc" /> }
<div className="d-flex w-100 figure-button-container p-1">
<Button variant="link" size="sm" className="w-100" onClick={ event => saveFigureAtWardrobeIndex(index) }>Save</Button>
{ figureContainer && <Button variant="link" size="sm" className="w-100" onClick={ event => wearFigureAtIndex(index) }>Use</Button> }
{ figureContainer && <Button variant="link" size="sm" className="w-100" onClick={ event => wearFigureAtIndex(index) } disabled={ (clubLevel > GetSessionDataManager().clubLevel) }>Use</Button> }
</div>
</NitroCardGridItemView>
);

View File

@ -1,6 +1,6 @@
import { AvatarFigurePartType, FurnitureMannequinSaveLookComposer, FurnitureMannequinSaveNameComposer, FurnitureMultiStateComposer, IAvatarFigureContainer, NitroEvent, RoomEngineTriggerWidgetEvent, RoomObjectVariable } from '@nitrots/nitro-renderer';
import { FC, KeyboardEvent, useCallback, useEffect, useState } from 'react';
import { GetNitroInstance, GetRoomEngine, GetRoomSession, GetSessionDataManager, LocalizeText, RoomWidgetRoomObjectUpdateEvent } from '../../../../../api';
import { GetAvatarRenderManager, GetNitroInstance, GetRoomEngine, GetRoomSession, GetSessionDataManager, LocalizeText, RoomWidgetRoomObjectUpdateEvent } from '../../../../../api';
import { CreateEventDispatcherHook } from '../../../../../hooks/events/event-dispatcher.base';
import { useRoomEngineEvent } from '../../../../../hooks/events/nitro/room/room-engine-event';
import { NitroCardContentView, NitroCardHeaderView, NitroCardView } from '../../../../../layout';
@ -45,7 +45,7 @@ export const FurnitureMannequinView: FC<{}> = props =>
{
if(mannequinData && !mannequinData.renderedFigure)
{
const figureContainer = GetNitroInstance().avatar.createFigureContainer(mannequinData.figure);
const figureContainer = GetAvatarRenderManager().createFigureContainer(mannequinData.figure);
loadMannequinFigure(figureContainer);
}
}, [loadMannequinFigure, mannequinData]);
@ -96,8 +96,8 @@ export const FurnitureMannequinView: FC<{}> = props =>
const gender = roomObject.model.getValue<string>(RoomObjectVariable.FURNITURE_MANNEQUIN_GENDER);
const name = roomObject.model.getValue<string>(RoomObjectVariable.FURNITURE_MANNEQUIN_NAME);
const figureContainer = GetNitroInstance().avatar.createFigureContainer(figure);
const clubLevel = GetNitroInstance().avatar.getFigureClubLevel(figureContainer, gender, parts);
const figureContainer = GetAvatarRenderManager().createFigureContainer(figure);
const clubLevel = GetAvatarRenderManager().getFigureClubLevel(figureContainer, gender, parts);
const mannequinData = new FurnitureMannequinData(widgetEvent.objectId, widgetEvent.category, name, figure, gender, clubLevel);
@ -133,11 +133,11 @@ export const FurnitureMannequinView: FC<{}> = props =>
setMannequinData(mannequinData => new FurnitureMannequinData(mannequinData.objectId, mannequinData.category, value, mannequinData.figure, mannequinData.gender, mannequinData.clubLevel, mannequinData.renderedFigure));
return;
case 'load_figure':
loadMannequinFigure(GetNitroInstance().avatar.createFigureContainer(GetNitroInstance().sessionDataManager.figure));
loadMannequinFigure(GetAvatarRenderManager().createFigureContainer(GetNitroInstance().sessionDataManager.figure));
setViewMode(MannequinViewMode.SAVE);
return;
case 'back':
loadMannequinFigure(GetNitroInstance().avatar.createFigureContainer(mannequinData.figure));
loadMannequinFigure(GetAvatarRenderManager().createFigureContainer(mannequinData.figure));
setViewMode(MannequinViewMode.EDIT);
return;
case 'save_name':