Skip to content

Commit 6c2a679

Browse files
committed
move TextureStore to twopoint5d package
1 parent 0de823b commit 6c2a679

File tree

14 files changed

+65
-71
lines changed

14 files changed

+65
-71
lines changed

packages/twopoint5d-elements-e2e/src/display-and-stage2d.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import {Stage2DElement, TextureStore} from '@spearwolf/twopoint5d-elements';
1+
import {TextureStore} from '@spearwolf/twopoint5d';
2+
import {Stage2DElement} from '@spearwolf/twopoint5d-elements';
23
import type {StageFirstFrameProps} from '@spearwolf/twopoint5d-elements/events.js';
34
import '@spearwolf/twopoint5d-elements/two5-display.js';
45
import '@spearwolf/twopoint5d-elements/two5-stage2d.js';

packages/twopoint5d-elements/src/components/DisplayElement.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import {provide} from '@lit/context';
2-
import {Display, type DisplayParameters} from '@spearwolf/twopoint5d';
2+
import {Display, StageRenderer, type DisplayParameters, type IStageRenderer} from '@spearwolf/twopoint5d';
33
import {css, html} from 'lit';
44
import {displayContext} from '../context/display-context.js';
55
import {stageRendererContext} from '../context/stage-renderer-context.js';
6-
import type {IStageRenderer} from '../twopoint5d/IStageRenderer.js';
7-
import {SimpleStageRenderer} from '../twopoint5d/SimpleStageRenderer.js';
86
import {readBooleanAttribute} from '../utils/readBooleanAttribute.js';
97
import {readStringAttribute} from '../utils/readStringAttribute.js';
108
import {whenDefined} from '../utils/whenDefined.js';
@@ -146,7 +144,7 @@ export class DisplayElement extends TwoPoint5DElement {
146144

147145
this.display.on(this);
148146

149-
this.stageRenderer = new SimpleStageRenderer();
147+
this.stageRenderer = new StageRenderer();
150148
this.stageRenderer.attach(this.display);
151149

152150
this.display.start();

packages/twopoint5d-elements/src/components/Stage2DElement.ts

+3-9
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,17 @@ import {
66
ParallaxProjection,
77
Stage2D,
88
type IProjection,
9+
type IStageRenderer,
910
type OrthographicProjectionSpecs,
1011
type ParallaxProjectionSpecs,
1112
type ProjectionPlaneDescription,
1213
} from '@spearwolf/twopoint5d';
14+
import {StageRenderFrame, type StageRenderFrameProps} from '@spearwolf/twopoint5d/events.js';
1315
import {css, html} from 'lit';
1416
import {property} from 'lit/decorators.js';
1517
import type {Scene} from 'three';
1618
import {stageRendererContext} from '../context/stage-renderer-context.js';
17-
import {
18-
StageFirstFrame,
19-
StageRenderFrame,
20-
StageResize,
21-
type StageFirstFrameProps,
22-
type StageRenderFrameProps,
23-
type StageResizeProps,
24-
} from '../events.js';
25-
import type {IStageRenderer} from '../twopoint5d/IStageRenderer.js';
19+
import {StageFirstFrame, StageResize, type StageFirstFrameProps, type StageResizeProps} from '../events.js';
2620
import {SignalMap} from '../utils/SignalMap.js';
2721
import {whenDefined} from '../utils/whenDefined.js';
2822
import {TwoPoint5DElement} from './TwoPoint5DElement.js';
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
import {createContext} from '@lit/context';
2-
import type {IStageRenderer} from '../twopoint5d/IStageRenderer.js';
2+
import type {IStageRenderer} from '@spearwolf/twopoint5d';
33

44
export const stageRendererContext = createContext<IStageRenderer | undefined>(Symbol('stage-renderer'));

packages/twopoint5d-elements/src/events.ts

+1-36
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,5 @@
11
import type {Stage2D} from '@spearwolf/twopoint5d';
2-
import type {WebGLRenderer} from 'three';
3-
import type {IStageRenderer, StageType} from './twopoint5d/IStageRenderer.js';
4-
5-
/**
6-
* published by the SimpleStageRenderer
7-
*/
8-
export const StageAdded = 'stageadded';
9-
10-
export interface StageAddedProps {
11-
stage: StageType;
12-
renderer: IStageRenderer;
13-
}
14-
15-
/**
16-
* published by the SimpleStageRenderer
17-
*/
18-
export const StageRemoved = 'stageremoved';
19-
20-
export interface StageRemovedProps {
21-
stage: StageType;
22-
renderer: IStageRenderer;
23-
}
2+
import type {StageRenderFrame, StageRenderFrameProps} from '@spearwolf/twopoint5d/events.js';
243

254
/**
265
* published by the <two5-stage2d> element as object event and customevent
@@ -40,20 +19,6 @@ export interface StageResizeEvent extends Event {
4019
detail?: StageResizeProps;
4120
}
4221

43-
/**
44-
* published by the <two5-stage2d> element as object event and customevent
45-
*/
46-
export const StageRenderFrame = 'stagerenderframe';
47-
48-
export interface StageRenderFrameProps {
49-
width: number;
50-
height: number;
51-
renderer: WebGLRenderer;
52-
now: number;
53-
deltaTime: number;
54-
frameNo: number;
55-
}
56-
5722
export interface StageRenderFrameEvent extends Event {
5823
detail?: StageRenderFrameProps;
5924
}

packages/twopoint5d-elements/src/index.ts

-3
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@ export * from './components/Stage2DElement.js';
44
export * from './components/TwoPoint5DElement.js';
55
export * from './context/display-context.js';
66
export * from './context/stage-renderer-context.js';
7-
export type * from './twopoint5d/IStageRenderer.js';
8-
export * from './twopoint5d/SimpleStageRenderer.js';
9-
export * from './twopoint5d/TextureStore.js';
107
export * from './utils/ConsoleLogger.js';
118
export * from './utils/asBoolean.js';
129
export * from './utils/readBooleanAttribute.js';

packages/twopoint5d/package.json

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@spearwolf/twopoint5d",
33
"description": "a library to create 2.5d realtime graphics and pixelart with three.js",
4-
"version": "0.3.3",
4+
"version": "0.4.0-dev",
55
"author": {
66
"name": "Wolfger Schramm",
77
"email": "[email protected]",
@@ -14,6 +14,10 @@
1414
".": {
1515
"types": "./dist/lib/index.d.ts",
1616
"import": "./dist/lib/index.js"
17+
},
18+
"./events.js": {
19+
"types": "./dist/lib/events.d.ts",
20+
"import": "./dist/lib/events.js"
1721
}
1822
},
1923
"main": "dist/lib/index.js",
@@ -30,6 +34,7 @@
3034
},
3135
"peerDependencies": {
3236
"@spearwolf/eventize": "^3.4.1",
37+
"@spearwolf/signalize": "^0.9.0",
3338
"three": "^0.153"
3439
}
3540
}

packages/twopoint5d/src/events.ts

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import type {WebGLRenderer} from 'three';
2+
import type {IStageRenderer, StageType} from './stage/IStageRenderer.js';
3+
4+
export const StageAdded = 'stageadded';
5+
6+
export interface StageAddedProps {
7+
stage: StageType;
8+
renderer: IStageRenderer;
9+
}
10+
11+
export const StageRemoved = 'stageremoved';
12+
13+
export interface StageRemovedProps {
14+
stage: StageType;
15+
renderer: IStageRenderer;
16+
}
17+
18+
export const StageRenderFrame = 'stagerenderframe';
19+
20+
export interface StageRenderFrameProps {
21+
width: number;
22+
height: number;
23+
renderer: WebGLRenderer;
24+
now: number;
25+
deltaTime: number;
26+
frameNo: number;
27+
}
28+
29+
export interface StageRenderFrameEvent extends Event {
30+
detail?: StageRenderFrameProps;
31+
}
32+
33+
export const UnsubscribeFromParent = 'unsubscribeFromParent';

packages/twopoint5d-elements/src/twopoint5d/IStageRenderer.ts renamed to packages/twopoint5d/src/stage/IStageRenderer.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import type {Display, Stage2D} from '@spearwolf/twopoint5d';
21
import type {WebGLRenderer} from 'three';
2+
import type {Display} from '../display/Display.js';
3+
import type {Stage2D} from './Stage2D.js';
34

45
export type StageParentType = Display | IStageRenderer;
56
export type StageType = Stage2D | IStageRenderer;

packages/twopoint5d-elements/src/twopoint5d/SimpleStageRenderer.ts renamed to packages/twopoint5d/src/stage/StageRenderer.ts

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,27 @@
11
import {eventize, type Eventize} from '@spearwolf/eventize';
2-
import {Display, Stage2D} from '@spearwolf/twopoint5d';
32
import type {WebGLRenderer} from 'three';
3+
import {Display} from '../display/Display.js';
44
import {
55
StageAdded,
66
StageRemoved,
77
StageRenderFrame,
8+
UnsubscribeFromParent,
89
type StageAddedProps,
910
type StageRemovedProps,
1011
type StageRenderFrameProps,
1112
} from '../events.js';
1213
import type {IStageRenderer, StageParentType, StageType} from './IStageRenderer.js';
14+
import {Stage2D} from './Stage2D.js';
1315

14-
export interface SimpleStageRenderer extends Eventize {}
16+
export interface StageRenderer extends Eventize {}
1517

1618
interface StageItem {
1719
stage: StageType;
1820
width: number;
1921
height: number;
2022
}
2123

22-
const UnsubscribeFromParent = 'unsubscribeFromParent';
23-
24-
// TODO rename to StageRenderer
25-
export class SimpleStageRenderer implements IStageRenderer {
24+
export class StageRenderer implements IStageRenderer {
2625
#parent?: StageParentType;
2726

2827
width: number = 0;
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
export * from './Canvas2DStage.js';
22
export type * from './IProjection.js';
3+
export type * from './IStageRenderer.js';
34
export * from './OrthographicProjection.js';
45
export * from './ParallaxProjection.js';
56
export * from './ProjectionPlane.js';
67
export * from './Stage2D.js';
8+
export * from './StageRenderer.js';
79
export * from './fitIntoRectangle.js';

packages/twopoint5d-elements/src/twopoint5d/TextureResource.ts renamed to packages/twopoint5d/src/texture/TextureResource.ts

+4-8
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
import {eventize, type Eventize} from '@spearwolf/eventize';
22
import {batch, createEffect, createSignal, value, type SignalFuncs, type SignalReader} from '@spearwolf/signalize';
3-
import {
4-
TextureCoords,
5-
TextureFactory,
6-
TileSet,
7-
type TextureAtlas,
8-
type TextureOptionClasses,
9-
type TileSetOptions,
10-
} from '@spearwolf/twopoint5d';
113
import {ImageLoader, type Texture, type WebGLRenderer} from 'three';
4+
import type {TextureAtlas} from './TextureAtlas.js';
5+
import {TextureCoords} from './TextureCoords.js';
6+
import {TextureFactory, type TextureOptionClasses} from './TextureFactory.js';
7+
import {TileSet, type TileSetOptions} from './TileSet.js';
128

139
export type TextureResourceType = 'image' | 'atlas' | 'tileset';
1410
export type TextureResourceSubType = 'imageCoords' | 'atlas' | 'tileSet' | 'texture';

packages/twopoint5d-elements/src/twopoint5d/TextureStore.ts renamed to packages/twopoint5d/src/texture/TextureStore.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import {eventize, type Eventize} from '@spearwolf/eventize';
22
import {batch, createSignal, value, type SignalReader} from '@spearwolf/signalize';
3-
import {type TextureOptionClasses, type TileSetOptions} from '@spearwolf/twopoint5d';
43
import type {WebGLRenderer} from 'three';
4+
import type {TextureOptionClasses} from './TextureFactory.js';
55
import {TextureResource, type TextureResourceSubType} from './TextureResource.js';
6+
import type {TileSetOptions} from './TileSet.js';
67

78
export interface TextureStoreItem {
89
imageUrl?: string;

packages/twopoint5d/src/texture/public-api.ts

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ export * from './TextureCoords.js';
66
export * from './TextureFactory.js';
77
export * from './TextureImageLoader.js';
88
export * from './TexturePackerJson.js';
9+
export * from './TextureResource.js';
10+
export * from './TextureStore.js';
911
export * from './TileSet.js';
1012
export * from './TileSetLoader.js';
1113
export type * from './types.js';

0 commit comments

Comments
 (0)