|
| 1 | +import type {TextureStore} from '@spearwolf/twopoint5d'; |
1 | 2 | import {DisplayElement, Stage2DElement, TextureStoreElement} from '@spearwolf/twopoint5d-elements';
|
2 | 3 | import {Color, Scene, Sprite, SpriteMaterial} from 'three';
|
3 | 4 | import './display.css';
|
4 | 5 | import './style.css';
|
5 | 6 |
|
6 |
| -const initialize = async (action: (stageEl: Stage2DElement, storeEl: TextureStoreElement) => void) => { |
| 7 | +const initialize = async (action: (scene: Scene, store: TextureStore) => void) => { |
7 | 8 | customElements.define('x-display', DisplayElement);
|
8 | 9 | customElements.define('x-stage2d', Stage2DElement);
|
9 | 10 | customElements.define('x-texture-store', TextureStoreElement);
|
10 | 11 |
|
11 |
| - const elems = await Promise.all([ |
| 12 | + const [stageEl, storeEl] = await Promise.all([ |
12 | 13 | Stage2DElement.whenDefined(document.getElementById('stage2d')),
|
13 | 14 | TextureStoreElement.whenDefined(document.getElementById('texstore')),
|
14 | 15 | ]);
|
15 |
| - action(...elems); |
| 16 | + |
| 17 | + action(await stageEl.sceneReady(), storeEl.store); |
16 | 18 | };
|
17 | 19 |
|
18 |
| -initialize((stageEl, {store}) => { |
19 |
| - stageEl.sceneReady().then((scene: Scene) => { |
20 |
| - scene.background = new Color(0x212121); |
| 20 | +initialize((scene, textureStore) => { |
| 21 | + scene.background = new Color(0x212121); |
21 | 22 |
|
22 |
| - const sprite = new Sprite(); |
23 |
| - sprite.scale.set(197, 205, 1); |
24 |
| - scene.add(sprite); |
| 23 | + const sprite = new Sprite(); |
| 24 | + sprite.scale.set(197, 205, 1); |
| 25 | + scene.add(sprite); |
25 | 26 |
|
26 |
| - store.get('ballPatternRot', ['texture', 'imageCoords'], ([texture, imageCoords]) => { |
27 |
| - console.log('texture', {texture, imageCoords}); |
| 27 | + textureStore.get('ballPatternRot', ['texture', 'imageCoords'], ([texture, imageCoords]) => { |
| 28 | + console.log('texture', {texture, imageCoords}); |
28 | 29 |
|
29 |
| - sprite.material?.dispose(); |
30 |
| - sprite.material = new SpriteMaterial({map: texture}); |
31 |
| - }); |
| 30 | + sprite.material?.dispose(); |
| 31 | + sprite.material = new SpriteMaterial({map: texture}); |
32 | 32 | });
|
33 | 33 | });
|
0 commit comments