sdk7-npc-utils
Version:
A collection of helpers to make it easier to build a Decentraland scene using the SDK 7.
36 lines • 6.11 kB
JavaScript
import { Color4 } from '@dcl/sdk/math';
import ReactEcs, { ReactEcsRenderer, UiEntity } from '@dcl/sdk/react-ecs';
import { displayDialog, getFontSize, getText, handleDialogClick } from './dialog';
export let lightTheme = ('https://decentraland.org/images/ui/light-atlas-v3.png');
export let darkTheme = ('https://decentraland.org/images/ui/dark-atlas-v3.png');
export let bubblesTexture = ('https://decentraland.org/images/ui/dialog-bubbles.png');
export let dialogs = new Map();
export function createDialog(npc) {
ReactEcsRenderer.setUiRenderer(() => (ReactEcs.createElement(UiEntity, { uiTransform: {
width: '100%',
height: '300px',
display: displayDialog() ? 'flex' : 'none',
justifyContent: 'center',
flexDirection: 'row',
alignItems: 'flex-end',
alignContent: "flex-end",
alignSelf: 'auto',
positionType: 'absolute',
position: { top: '50%' }
} },
ReactEcs.createElement(UiEntity, { uiTransform: {
width: '700px',
height: '225px',
alignItems: 'center',
justifyContent: 'center',
}, uiBackground: { color: Color4.fromHexString("#70ac76ff") }, onMouseDown: () => { handleDialogClick(); } },
ReactEcs.createElement(UiEntity, { uiTransform: {
width: '100px',
height: '300px',
alignItems: 'center',
justifyContent: 'flex-start'
}, uiText: { value: getText(), fontSize: getFontSize() } })))));
console.log('dialog sizes ', dialogs.size);
console.log(dialogs.get(npc));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdWkudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDdEMsT0FBTyxRQUFRLEVBQUUsRUFBaUIsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFeEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRWpGLE1BQU0sQ0FBQyxJQUFJLFVBQVUsR0FBRyxDQUFDLHVEQUF1RCxDQUFDLENBQUE7QUFDakYsTUFBTSxDQUFDLElBQUksU0FBUyxHQUFHLENBQUMsc0RBQXNELENBQUMsQ0FBQTtBQUUvRSxNQUFNLENBQUMsSUFBSSxjQUFjLEdBQUcsQ0FBQyx1REFBdUQsQ0FBQyxDQUFBO0FBRXJGLE1BQU0sQ0FBQyxJQUFJLE9BQU8sR0FBb0IsSUFBSSxHQUFHLEVBQUUsQ0FBQTtBQUUvQyxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQVU7SUFHdEMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQ3BDLHVCQUFDLFFBQVEsSUFDVCxXQUFXLEVBQUU7WUFDWCxLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxPQUFPO1lBQ2YsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBLE1BQU07WUFDekMsY0FBYyxFQUFFLFFBQVE7WUFDeEIsYUFBYSxFQUFDLEtBQUs7WUFDbkIsVUFBVSxFQUFDLFVBQVU7WUFDckIsWUFBWSxFQUFDLFVBQVU7WUFDdkIsU0FBUyxFQUFDLE1BQU07WUFDaEIsWUFBWSxFQUFDLFVBQVU7WUFDdkIsUUFBUSxFQUFDLEVBQUMsR0FBRyxFQUFDLEtBQUssRUFBQztTQUNyQjtRQUVELHVCQUFDLFFBQVEsSUFDUCxXQUFXLEVBQUU7Z0JBQ2QsS0FBSyxFQUFFLE9BQU87Z0JBQ2QsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLGNBQWMsRUFBQyxRQUFRO2FBQ3JCLEVBQ0QsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFDMUQsV0FBVyxFQUFFLEdBQUcsRUFBRSxHQUFHLGlCQUFpQixFQUFFLENBQUEsQ0FBQyxDQUFDO1lBRzVDLHVCQUFDLFFBQVEsSUFDUCxXQUFXLEVBQUU7b0JBQ1osS0FBSyxFQUFFLE9BQU87b0JBQ2QsTUFBTSxFQUFFLE9BQU87b0JBQ2YsVUFBVSxFQUFFLFFBQVE7b0JBQ3BCLGNBQWMsRUFBQyxZQUFZO2lCQUMzQixFQUNELE1BQU0sRUFBRSxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEVBQUMsR0FFekMsQ0FDQSxDQUNBLENBQ1osQ0FBQyxDQUFBO0lBRUYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBDb2xvcjQgfSBmcm9tICdAZGNsL3Nkay9tYXRoJ1xuaW1wb3J0IFJlYWN0RWNzLCB7IEJ1dHRvbiwgTGFiZWwsIFJlYWN0RWNzUmVuZGVyZXIsIFVpRW50aXR5IH0gZnJvbSAnQGRjbC9zZGsvcmVhY3QtZWNzJ1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnQGRjbC9zZGsvZWNzJ1xuaW1wb3J0IHsgZGlzcGxheURpYWxvZywgZ2V0Rm9udFNpemUsIGdldFRleHQsIGhhbmRsZURpYWxvZ0NsaWNrIH0gZnJvbSAnLi9kaWFsb2cnXG5cbmV4cG9ydCBsZXQgbGlnaHRUaGVtZSA9ICgnaHR0cHM6Ly9kZWNlbnRyYWxhbmQub3JnL2ltYWdlcy91aS9saWdodC1hdGxhcy12My5wbmcnKVxuZXhwb3J0IGxldCBkYXJrVGhlbWUgPSAoJ2h0dHBzOi8vZGVjZW50cmFsYW5kLm9yZy9pbWFnZXMvdWkvZGFyay1hdGxhcy12My5wbmcnKVxuXG5leHBvcnQgbGV0IGJ1YmJsZXNUZXh0dXJlID0gKCdodHRwczovL2RlY2VudHJhbGFuZC5vcmcvaW1hZ2VzL3VpL2RpYWxvZy1idWJibGVzLnBuZycpXG5cbmV4cG9ydCBsZXQgZGlhbG9nczpNYXA8RW50aXR5LCBhbnk+ID0gbmV3IE1hcCgpXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEaWFsb2cobnBjOkVudGl0eSl7Ly9cblx0Ly8gY29uc29sZS5sb2coJ2NyZWF0aW5nIGRpYWxvZyBmb3IgbnBjJywgbnBjKVxuXHQvLyBkaWFsb2dzLnNldChucGMsXG5cdFJlYWN0RWNzUmVuZGVyZXIuc2V0VWlSZW5kZXJlcigoKSA9PiAoXG5cdFx0PFVpRW50aXR5XG5cdFx0dWlUcmFuc2Zvcm09e3tcblx0XHQgIHdpZHRoOiAnMTAwJScsXG5cdFx0ICBoZWlnaHQ6ICczMDBweCcsXG5cdFx0ICBkaXNwbGF5OiBkaXNwbGF5RGlhbG9nKCkgPyAnZmxleCcgOidub25lJyxcblx0XHQgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcblx0XHQgIGZsZXhEaXJlY3Rpb246J3JvdycsXG5cdFx0ICBhbGlnbkl0ZW1zOidmbGV4LWVuZCcsXG5cdFx0ICBhbGlnbkNvbnRlbnQ6XCJmbGV4LWVuZFwiLFxuXHRcdCAgYWxpZ25TZWxmOidhdXRvJyxcblx0XHQgIHBvc2l0aW9uVHlwZTonYWJzb2x1dGUnLFxuXHRcdCAgcG9zaXRpb246e3RvcDonNTAlJ31cblx0XHR9fVxuXHQgID5cblx0XHQ8VWlFbnRpdHlcblx0XHQgIHVpVHJhbnNmb3JtPXt7XG5cdFx0XHR3aWR0aDogJzcwMHB4Jyxcblx0XHRcdGhlaWdodDogJzIyNXB4Jyxcblx0XHRcdGFsaWduSXRlbXM6ICdjZW50ZXInLFxuXHRcdFx0anVzdGlmeUNvbnRlbnQ6J2NlbnRlcicsXG5cdFx0ICB9fVxuXHRcdCAgdWlCYWNrZ3JvdW5kPXt7IGNvbG9yOiBDb2xvcjQuZnJvbUhleFN0cmluZyhcIiM3MGFjNzZmZlwiKSB9fVxuXHRcdCAgb25Nb3VzZURvd249eygpID0+IHsgaGFuZGxlRGlhbG9nQ2xpY2soKSB9IH1cblx0XHQgID5cblxuXHRcdDxVaUVudGl0eVxuXHRcdFx0XHR1aVRyYW5zZm9ybT17e1xuXHRcdFx0XHRcdHdpZHRoOiAnMTAwcHgnLFxuXHRcdFx0XHRcdGhlaWdodDogJzMwMHB4Jyxcblx0XHRcdFx0XHRhbGlnbkl0ZW1zOiAnY2VudGVyJyxcblx0XHRcdFx0XHRqdXN0aWZ5Q29udGVudDonZmxleC1zdGFydCdcblx0XHRcdFx0fX1cblx0XHRcdFx0dWlUZXh0PXt7dmFsdWU6IGdldFRleHQoKSwgZm9udFNpemU6IGdldEZvbnRTaXplKCl9fVxuXHRcdFx0XHQ+XG5cdFx0XHQ8L1VpRW50aXR5PlxuXHRcdCA8L1VpRW50aXR5PlxuXHQgIDwvVWlFbnRpdHk+XG5cdCkpXG5cdC8vKVxuXHRjb25zb2xlLmxvZygnZGlhbG9nIHNpemVzICcsIGRpYWxvZ3Muc2l6ZSlcblx0Y29uc29sZS5sb2coZGlhbG9ncy5nZXQobnBjKSlcbn1cbiJdfQ==