toaimin-indie-engine 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -0
- package/cli/bin.cjs +99 -0
- package/dist/audio/AudioBus.d.ts +30 -0
- package/dist/audio/AudioBus.d.ts.map +1 -0
- package/dist/audio/AudioMock.d.ts +112 -0
- package/dist/audio/AudioMock.d.ts.map +1 -0
- package/dist/audio/ProceduralAudio.d.ts +48 -0
- package/dist/audio/ProceduralAudio.d.ts.map +1 -0
- package/dist/audio/SoundManager.d.ts +73 -0
- package/dist/audio/SoundManager.d.ts.map +1 -0
- package/dist/audio/VoicePool.d.ts +26 -0
- package/dist/audio/VoicePool.d.ts.map +1 -0
- package/dist/audio/index.d.ts +7 -0
- package/dist/audio/index.d.ts.map +1 -0
- package/dist/audio/types.d.ts +87 -0
- package/dist/audio/types.d.ts.map +1 -0
- package/dist/core/EventEmitter.d.ts +64 -0
- package/dist/core/EventEmitter.d.ts.map +1 -0
- package/dist/core/Game.d.ts +248 -0
- package/dist/core/Game.d.ts.map +1 -0
- package/dist/core/GameLoop.d.ts +128 -0
- package/dist/core/GameLoop.d.ts.map +1 -0
- package/dist/core/Time.d.ts +73 -0
- package/dist/core/Time.d.ts.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/entity/Component.d.ts +31 -0
- package/dist/entity/Component.d.ts.map +1 -0
- package/dist/entity/Entity.d.ts +61 -0
- package/dist/entity/Entity.d.ts.map +1 -0
- package/dist/entity/EntityManager.d.ts +46 -0
- package/dist/entity/EntityManager.d.ts.map +1 -0
- package/dist/entity/components/ColliderComponent.d.ts +47 -0
- package/dist/entity/components/ColliderComponent.d.ts.map +1 -0
- package/dist/entity/components/RigidBodyComponent.d.ts +38 -0
- package/dist/entity/components/RigidBodyComponent.d.ts.map +1 -0
- package/dist/entity/components/ScriptComponent.d.ts +32 -0
- package/dist/entity/components/ScriptComponent.d.ts.map +1 -0
- package/dist/entity/components/ShapeComponent.d.ts +50 -0
- package/dist/entity/components/ShapeComponent.d.ts.map +1 -0
- package/dist/entity/components/SpriteComponent.d.ts +31 -0
- package/dist/entity/components/SpriteComponent.d.ts.map +1 -0
- package/dist/entity/components/index.d.ts +6 -0
- package/dist/entity/components/index.d.ts.map +1 -0
- package/dist/entity/index.d.ts +5 -0
- package/dist/entity/index.d.ts.map +1 -0
- package/dist/index.cjs +4 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6326 -0
- package/dist/index.js.map +1 -0
- package/dist/input/ActionMap.d.ts +91 -0
- package/dist/input/ActionMap.d.ts.map +1 -0
- package/dist/input/InputManager.d.ts +102 -0
- package/dist/input/InputManager.d.ts.map +1 -0
- package/dist/input/Pointer.d.ts +115 -0
- package/dist/input/Pointer.d.ts.map +1 -0
- package/dist/input/VirtualJoystick.d.ts +79 -0
- package/dist/input/VirtualJoystick.d.ts.map +1 -0
- package/dist/input/index.d.ts +5 -0
- package/dist/input/index.d.ts.map +1 -0
- package/dist/math/Circle.d.ts +39 -0
- package/dist/math/Circle.d.ts.map +1 -0
- package/dist/math/Color.d.ts +58 -0
- package/dist/math/Color.d.ts.map +1 -0
- package/dist/math/MathUtils.d.ts +82 -0
- package/dist/math/MathUtils.d.ts.map +1 -0
- package/dist/math/Matrix2D.d.ts +97 -0
- package/dist/math/Matrix2D.d.ts.map +1 -0
- package/dist/math/Rect.d.ts +54 -0
- package/dist/math/Rect.d.ts.map +1 -0
- package/dist/math/Transform2D.d.ts +47 -0
- package/dist/math/Transform2D.d.ts.map +1 -0
- package/dist/math/Vector2.d.ts +89 -0
- package/dist/math/Vector2.d.ts.map +1 -0
- package/dist/math/index.d.ts +8 -0
- package/dist/math/index.d.ts.map +1 -0
- package/dist/physics/BoxCollider2D.d.ts +38 -0
- package/dist/physics/BoxCollider2D.d.ts.map +1 -0
- package/dist/physics/CircleCollider2D.d.ts +27 -0
- package/dist/physics/CircleCollider2D.d.ts.map +1 -0
- package/dist/physics/Collider2D.d.ts +79 -0
- package/dist/physics/Collider2D.d.ts.map +1 -0
- package/dist/physics/CollisionFSM.d.ts +84 -0
- package/dist/physics/CollisionFSM.d.ts.map +1 -0
- package/dist/physics/ContactSolver.d.ts +58 -0
- package/dist/physics/ContactSolver.d.ts.map +1 -0
- package/dist/physics/Narrowphase.d.ts +25 -0
- package/dist/physics/Narrowphase.d.ts.map +1 -0
- package/dist/physics/PhysicsWorld2D.d.ts +75 -0
- package/dist/physics/PhysicsWorld2D.d.ts.map +1 -0
- package/dist/physics/Raycast.d.ts +38 -0
- package/dist/physics/Raycast.d.ts.map +1 -0
- package/dist/physics/RigidBody2D.d.ts +118 -0
- package/dist/physics/RigidBody2D.d.ts.map +1 -0
- package/dist/physics/SpatialGrid.d.ts +78 -0
- package/dist/physics/SpatialGrid.d.ts.map +1 -0
- package/dist/physics/index.d.ts +14 -0
- package/dist/physics/index.d.ts.map +1 -0
- package/dist/rendering/Animation.d.ts +62 -0
- package/dist/rendering/Animation.d.ts.map +1 -0
- package/dist/rendering/AssetLoader.d.ts +35 -0
- package/dist/rendering/AssetLoader.d.ts.map +1 -0
- package/dist/rendering/Camera2D.d.ts +109 -0
- package/dist/rendering/Camera2D.d.ts.map +1 -0
- package/dist/rendering/CanvasContext.d.ts +80 -0
- package/dist/rendering/CanvasContext.d.ts.map +1 -0
- package/dist/rendering/CanvasMock.d.ts +163 -0
- package/dist/rendering/CanvasMock.d.ts.map +1 -0
- package/dist/rendering/ParticleSystem.d.ts +103 -0
- package/dist/rendering/ParticleSystem.d.ts.map +1 -0
- package/dist/rendering/Renderer.d.ts +98 -0
- package/dist/rendering/Renderer.d.ts.map +1 -0
- package/dist/rendering/Shapes.d.ts +24 -0
- package/dist/rendering/Shapes.d.ts.map +1 -0
- package/dist/rendering/Sprite.d.ts +74 -0
- package/dist/rendering/Sprite.d.ts.map +1 -0
- package/dist/rendering/SpriteSheet.d.ts +22 -0
- package/dist/rendering/SpriteSheet.d.ts.map +1 -0
- package/dist/rendering/index.d.ts +11 -0
- package/dist/rendering/index.d.ts.map +1 -0
- package/dist/scene/Blackboard.d.ts +81 -0
- package/dist/scene/Blackboard.d.ts.map +1 -0
- package/dist/scene/Scene.d.ts +160 -0
- package/dist/scene/Scene.d.ts.map +1 -0
- package/dist/scene/SceneManager.d.ts +142 -0
- package/dist/scene/SceneManager.d.ts.map +1 -0
- package/dist/scene/SceneTransition.d.ts +118 -0
- package/dist/scene/SceneTransition.d.ts.map +1 -0
- package/dist/scene/index.d.ts +5 -0
- package/dist/scene/index.d.ts.map +1 -0
- package/dist/ui/UIAnchor.d.ts +31 -0
- package/dist/ui/UIAnchor.d.ts.map +1 -0
- package/dist/ui/UIButton.d.ts +48 -0
- package/dist/ui/UIButton.d.ts.map +1 -0
- package/dist/ui/UIElement.d.ts +108 -0
- package/dist/ui/UIElement.d.ts.map +1 -0
- package/dist/ui/UILabel.d.ts +54 -0
- package/dist/ui/UILabel.d.ts.map +1 -0
- package/dist/ui/UIManager.d.ts +41 -0
- package/dist/ui/UIManager.d.ts.map +1 -0
- package/dist/ui/UIPanel.d.ts +36 -0
- package/dist/ui/UIPanel.d.ts.map +1 -0
- package/dist/ui/UIProgressBar.d.ts +47 -0
- package/dist/ui/UIProgressBar.d.ts.map +1 -0
- package/dist/ui/index.d.ts +8 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Vector2 } from '../math/Vector2';
|
|
2
|
+
import { Rect } from '../math/Rect';
|
|
3
|
+
import { CanvasContext } from '../rendering/CanvasContext';
|
|
4
|
+
import { ICanvasRenderingContext2D } from '../rendering/CanvasMock';
|
|
5
|
+
export type UIContextLike = CanvasRenderingContext2D | ICanvasRenderingContext2D | CanvasContext | any;
|
|
6
|
+
export interface UIPointerEvent {
|
|
7
|
+
target: UIElement;
|
|
8
|
+
canvasPosition: Vector2;
|
|
9
|
+
button: number;
|
|
10
|
+
pointerType: 'mouse' | 'touch' | 'pen';
|
|
11
|
+
consumed: boolean;
|
|
12
|
+
stopPropagation: () => void;
|
|
13
|
+
}
|
|
14
|
+
export interface UIElementOptions {
|
|
15
|
+
name?: string;
|
|
16
|
+
position?: Vector2 | {
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
};
|
|
20
|
+
size?: Vector2 | {
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
};
|
|
24
|
+
anchor?: Vector2 | {
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
};
|
|
28
|
+
pivot?: Vector2 | {
|
|
29
|
+
x: number;
|
|
30
|
+
y: number;
|
|
31
|
+
};
|
|
32
|
+
scale?: Vector2 | {
|
|
33
|
+
x: number;
|
|
34
|
+
y: number;
|
|
35
|
+
};
|
|
36
|
+
rotation?: number;
|
|
37
|
+
visible?: boolean;
|
|
38
|
+
interactive?: boolean;
|
|
39
|
+
enabled?: boolean;
|
|
40
|
+
zIndex?: number;
|
|
41
|
+
alpha?: number;
|
|
42
|
+
cursor?: string;
|
|
43
|
+
onClick?: (event: UIPointerEvent) => void;
|
|
44
|
+
onPointerDown?: (event: UIPointerEvent) => void;
|
|
45
|
+
onPointerUp?: (event: UIPointerEvent) => void;
|
|
46
|
+
onPointerMove?: (event: UIPointerEvent) => void;
|
|
47
|
+
onPointerEnter?: (event: UIPointerEvent) => void;
|
|
48
|
+
onPointerLeave?: (event: UIPointerEvent) => void;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Abstract Base Class for all Retained-Mode UI Elements.
|
|
52
|
+
* Provides hierarchical 9-point anchor/pivot layout, bounds tracking,
|
|
53
|
+
* z-index ordering, and pointer event dispatch.
|
|
54
|
+
*/
|
|
55
|
+
export declare class UIElement {
|
|
56
|
+
readonly id: string;
|
|
57
|
+
name: string;
|
|
58
|
+
readonly position: Vector2;
|
|
59
|
+
readonly size: Vector2;
|
|
60
|
+
readonly anchor: Vector2;
|
|
61
|
+
readonly pivot: Vector2;
|
|
62
|
+
readonly scale: Vector2;
|
|
63
|
+
rotation: number;
|
|
64
|
+
visible: boolean;
|
|
65
|
+
interactive: boolean;
|
|
66
|
+
enabled: boolean;
|
|
67
|
+
zIndex: number;
|
|
68
|
+
alpha: number;
|
|
69
|
+
cursor: string;
|
|
70
|
+
parent: UIElement | null;
|
|
71
|
+
readonly children: UIElement[];
|
|
72
|
+
protected readonly _worldPosition: Vector2;
|
|
73
|
+
protected readonly _pivotWorldPosition: Vector2;
|
|
74
|
+
protected readonly _worldBounds: Rect;
|
|
75
|
+
protected readonly _worldScale: Vector2;
|
|
76
|
+
protected _worldAlpha: number;
|
|
77
|
+
protected _isDirty: boolean;
|
|
78
|
+
onClick?: (event: UIPointerEvent) => void;
|
|
79
|
+
onPointerDown?: (event: UIPointerEvent) => void;
|
|
80
|
+
onPointerUp?: (event: UIPointerEvent) => void;
|
|
81
|
+
onPointerMove?: (event: UIPointerEvent) => void;
|
|
82
|
+
onPointerEnter?: (event: UIPointerEvent) => void;
|
|
83
|
+
onPointerLeave?: (event: UIPointerEvent) => void;
|
|
84
|
+
constructor(options?: UIElementOptions);
|
|
85
|
+
markDirty(): void;
|
|
86
|
+
setAnchorAndPivot(anchor: Vector2, pivot?: Vector2): this;
|
|
87
|
+
updateTransform(parentBounds?: Rect): void;
|
|
88
|
+
get worldPosition(): Vector2;
|
|
89
|
+
get pivotWorldPosition(): Vector2;
|
|
90
|
+
get worldBounds(): Rect;
|
|
91
|
+
get worldScale(): Vector2;
|
|
92
|
+
get worldAlpha(): number;
|
|
93
|
+
addChild(child: UIElement): this;
|
|
94
|
+
removeChild(child: UIElement): boolean;
|
|
95
|
+
removeFromParent(): boolean;
|
|
96
|
+
removeAllChildren(): this;
|
|
97
|
+
getChildByName(name: string): UIElement | null;
|
|
98
|
+
getRoot(): UIElement;
|
|
99
|
+
containsPoint(point: Vector2): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Recursive hit test against hierarchy in reverse z-index order.
|
|
102
|
+
*/
|
|
103
|
+
hitTest(point: Vector2): UIElement | null;
|
|
104
|
+
update(dt: number): void;
|
|
105
|
+
render(ctx: UIContextLike): void;
|
|
106
|
+
protected draw(_raw: any, _localBounds: Rect): void;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=UIElement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UIElement.d.ts","sourceRoot":"","sources":["../../src/ui/UIElement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { UIElement, UIElementOptions, UIContextLike } from './UIElement';
|
|
2
|
+
import { Rect } from '../math/Rect';
|
|
3
|
+
import { Color } from '../math/Color';
|
|
4
|
+
export interface UILabelOptions extends UIElementOptions {
|
|
5
|
+
text?: string;
|
|
6
|
+
fontFamily?: string;
|
|
7
|
+
fontSize?: number;
|
|
8
|
+
fontWeight?: string | number;
|
|
9
|
+
fontStyle?: string;
|
|
10
|
+
color?: string | Color;
|
|
11
|
+
align?: 'left' | 'center' | 'right';
|
|
12
|
+
baseline?: 'top' | 'middle' | 'bottom' | 'alphabetic';
|
|
13
|
+
maxWidth?: number;
|
|
14
|
+
wordWrap?: boolean;
|
|
15
|
+
lineHeight?: number;
|
|
16
|
+
truncate?: boolean;
|
|
17
|
+
shadowColor?: string | Color;
|
|
18
|
+
shadowBlur?: number;
|
|
19
|
+
shadowOffsetX?: number;
|
|
20
|
+
shadowOffsetY?: number;
|
|
21
|
+
autoSize?: boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Text component with measurement, alignment, word wrapping, truncation, and drop shadows.
|
|
25
|
+
*/
|
|
26
|
+
export declare class UILabel extends UIElement {
|
|
27
|
+
text: string;
|
|
28
|
+
fontFamily: string;
|
|
29
|
+
fontSize: number;
|
|
30
|
+
fontWeight: string | number;
|
|
31
|
+
fontStyle: string;
|
|
32
|
+
color: string | Color;
|
|
33
|
+
align: 'left' | 'center' | 'right';
|
|
34
|
+
baseline: 'top' | 'middle' | 'bottom' | 'alphabetic';
|
|
35
|
+
maxWidth?: number;
|
|
36
|
+
wordWrap: boolean;
|
|
37
|
+
lineHeight: number;
|
|
38
|
+
truncate: boolean;
|
|
39
|
+
shadowColor?: string | Color;
|
|
40
|
+
shadowBlur?: number;
|
|
41
|
+
shadowOffsetX?: number;
|
|
42
|
+
shadowOffsetY?: number;
|
|
43
|
+
autoSize: boolean;
|
|
44
|
+
constructor(options?: UILabelOptions);
|
|
45
|
+
getFontString(): string;
|
|
46
|
+
measure(ctx?: UIContextLike): {
|
|
47
|
+
width: number;
|
|
48
|
+
height: number;
|
|
49
|
+
};
|
|
50
|
+
splitLines(ctx?: UIContextLike): string[];
|
|
51
|
+
private _truncateLine;
|
|
52
|
+
protected draw(raw: any, localBounds: Rect): void;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=UILabel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UILabel.d.ts","sourceRoot":"","sources":["../../src/ui/UILabel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,OAAQ,SAAQ,SAAS;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACnC,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;gBAEb,OAAO,GAAE,cAAmB;IAqBjC,aAAa,IAAI,MAAM;IAIvB,OAAO,CAAC,GAAG,CAAC,EAAE,aAAa,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IA2B/D,UAAU,CAAC,GAAG,CAAC,EAAE,aAAa,GAAG,MAAM,EAAE;IAwChD,OAAO,CAAC,aAAa;cAqBF,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,GAAG,IAAI;CA2C3D"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { UIElement, UIContextLike } from './UIElement';
|
|
2
|
+
import { Vector2 } from '../math/Vector2';
|
|
3
|
+
import { InputManager } from '../input/InputManager';
|
|
4
|
+
export interface UIManagerConfig {
|
|
5
|
+
width?: number;
|
|
6
|
+
height?: number;
|
|
7
|
+
absorbInput?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Top-Level UI Manager coordinating retained UI hierarchy,
|
|
11
|
+
* reverse z-index hit testing, hover states, and click event absorption.
|
|
12
|
+
*/
|
|
13
|
+
export declare class UIManager {
|
|
14
|
+
readonly root: UIElement;
|
|
15
|
+
viewportWidth: number;
|
|
16
|
+
viewportHeight: number;
|
|
17
|
+
absorbInput: boolean;
|
|
18
|
+
hoveredElement: UIElement | null;
|
|
19
|
+
pressedElement: UIElement | null;
|
|
20
|
+
focusedElement: UIElement | null;
|
|
21
|
+
constructor(config?: UIManagerConfig | number, height?: number);
|
|
22
|
+
resize(width: number, height: number): void;
|
|
23
|
+
add(child: UIElement): this;
|
|
24
|
+
remove(child: UIElement): boolean;
|
|
25
|
+
clear(): void;
|
|
26
|
+
findElement(name: string): UIElement | null;
|
|
27
|
+
/**
|
|
28
|
+
* Hit test against UI children in reverse z-index order.
|
|
29
|
+
* Empty canvas areas outside interactive UI widgets return null.
|
|
30
|
+
*/
|
|
31
|
+
hitTest(canvasPos: Vector2): UIElement | null;
|
|
32
|
+
/**
|
|
33
|
+
* Evaluates pointer interaction against UI hierarchy.
|
|
34
|
+
* If a hit occurs on an interactive widget, marks pointer.consumed = true and absorbs input from game entities.
|
|
35
|
+
*/
|
|
36
|
+
processInput(input: InputManager): boolean;
|
|
37
|
+
private _createPointerEvent;
|
|
38
|
+
update(dt: number): void;
|
|
39
|
+
render(ctx: UIContextLike): void;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=UIManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UIManager.d.ts","sourceRoot":"","sources":["../../src/ui/UIManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkB,aAAa,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,SAAgB,IAAI,EAAE,SAAS,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IAErB,cAAc,EAAE,SAAS,GAAG,IAAI,CAAQ;IACxC,cAAc,EAAE,SAAS,GAAG,IAAI,CAAQ;IACxC,cAAc,EAAE,SAAS,GAAG,IAAI,CAAQ;gBAEnC,MAAM,GAAE,eAAe,GAAG,MAAY,EAAE,MAAM,GAAE,MAAY;IAmBjE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ3C,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAK3B,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIjC,KAAK,IAAI,IAAI;IAOb,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIlD;;;OAGG;IACI,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAgBpD;;;OAGG;IACI,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAoFjD,OAAO,CAAC,mBAAmB;IAmBpB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIxB,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;CAGxC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { UIElement, UIElementOptions, UIContextLike } from './UIElement';
|
|
2
|
+
import { Vector2 } from '../math/Vector2';
|
|
3
|
+
import { Rect } from '../math/Rect';
|
|
4
|
+
import { Color } from '../math/Color';
|
|
5
|
+
export interface UIPadding {
|
|
6
|
+
top: number;
|
|
7
|
+
right: number;
|
|
8
|
+
bottom: number;
|
|
9
|
+
left: number;
|
|
10
|
+
}
|
|
11
|
+
export interface UIPanelOptions extends UIElementOptions {
|
|
12
|
+
backgroundColor?: string | Color | null;
|
|
13
|
+
borderColor?: string | Color | null;
|
|
14
|
+
borderWidth?: number;
|
|
15
|
+
borderRadius?: number;
|
|
16
|
+
padding?: UIPadding | number;
|
|
17
|
+
clipChildren?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare function drawRoundedRectPath(raw: any, x: number, y: number, w: number, h: number, radius: number): void;
|
|
20
|
+
/**
|
|
21
|
+
* Container panel with background fill, border, corner radius, padding, and child clipping.
|
|
22
|
+
*/
|
|
23
|
+
export declare class UIPanel extends UIElement {
|
|
24
|
+
backgroundColor: string | Color | null;
|
|
25
|
+
borderColor: string | Color | null;
|
|
26
|
+
borderWidth: number;
|
|
27
|
+
borderRadius: number;
|
|
28
|
+
padding: UIPadding;
|
|
29
|
+
clipChildren: boolean;
|
|
30
|
+
constructor(options?: UIPanelOptions);
|
|
31
|
+
getInnerBounds(): Rect;
|
|
32
|
+
hitTest(point: Vector2): UIElement | null;
|
|
33
|
+
protected draw(raw: any, localBounds: Rect): void;
|
|
34
|
+
render(ctx: UIContextLike): void;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=UIPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UIPanel.d.ts","sourceRoot":"","sources":["../../src/ui/UIPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAoB9G;AAED;;GAEG;AACH,qBAAa,OAAQ,SAAQ,SAAS;IAC7B,eAAe,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACvC,WAAW,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;gBAEjB,OAAO,GAAE,cAAmB;IAiBjC,cAAc,IAAI,IAAI;IAUb,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;cAOtC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,GAAG,IAAI;IAmB1C,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;CAkBjD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { UIElement, UIElementOptions } from './UIElement';
|
|
2
|
+
import { Rect } from '../math/Rect';
|
|
3
|
+
import { Color } from '../math/Color';
|
|
4
|
+
import { UILabel } from './UILabel';
|
|
5
|
+
export type UIProgressDirection = 'horizontal-ltr' | 'horizontal-rtl' | 'vertical-btt' | 'vertical-ttb';
|
|
6
|
+
export interface UIProgressBarOptions extends UIElementOptions {
|
|
7
|
+
value?: number;
|
|
8
|
+
min?: number;
|
|
9
|
+
max?: number;
|
|
10
|
+
direction?: UIProgressDirection;
|
|
11
|
+
backgroundColor?: string | Color;
|
|
12
|
+
borderColor?: string | Color;
|
|
13
|
+
borderWidth?: number;
|
|
14
|
+
borderRadius?: number;
|
|
15
|
+
fillColor?: string | Color;
|
|
16
|
+
fillPadding?: number;
|
|
17
|
+
fillBorderRadius?: number;
|
|
18
|
+
showText?: boolean;
|
|
19
|
+
textFormat?: (val: number, max: number, normalized: number) => string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Responsive Progress Bar for Health, Mana, Shields, and Loading Bars.
|
|
23
|
+
*/
|
|
24
|
+
export declare class UIProgressBar extends UIElement {
|
|
25
|
+
value: number;
|
|
26
|
+
min: number;
|
|
27
|
+
max: number;
|
|
28
|
+
direction: UIProgressDirection;
|
|
29
|
+
backgroundColor: string | Color;
|
|
30
|
+
borderColor: string | Color;
|
|
31
|
+
borderWidth: number;
|
|
32
|
+
borderRadius: number;
|
|
33
|
+
fillColor: string | Color;
|
|
34
|
+
fillPadding: number;
|
|
35
|
+
fillBorderRadius: number;
|
|
36
|
+
showText: boolean;
|
|
37
|
+
textFormat?: (val: number, max: number, normalized: number) => string;
|
|
38
|
+
label?: UILabel;
|
|
39
|
+
constructor(options?: UIProgressBarOptions);
|
|
40
|
+
get normalizedValue(): number;
|
|
41
|
+
set normalizedValue(norm: number);
|
|
42
|
+
setProgress(current: number, max?: number): this;
|
|
43
|
+
private _getFormattedText;
|
|
44
|
+
private _syncLabel;
|
|
45
|
+
protected draw(raw: any, localBounds: Rect): void;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=UIProgressBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UIProgressBar.d.ts","sourceRoot":"","sources":["../../src/ui/UIProgressBar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,cAAc,GAAG,cAAc,CAAC;AAExG,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;CACvE;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,mBAAmB,CAAC;IAE/B,eAAe,EAAE,MAAM,GAAG,KAAK,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IAErB,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEX,OAAO,GAAE,oBAAyB;IAqC9C,IAAW,eAAe,IAAI,MAAM,CAGnC;IAED,IAAW,eAAe,CAAC,IAAI,EAAE,MAAM,EAGtC;IAEM,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAOvD,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,UAAU;cAMC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,GAAG,IAAI;CAsD3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "toaimin-indie-engine",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Production-grade 2D Game Framework in TypeScript for Web/HTML5 designed for indie game developers",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"indie-engine": "./cli/bin.cjs"
|
|
8
|
+
},
|
|
9
|
+
"main": "./dist/index.cjs",
|
|
10
|
+
"module": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"import": "./dist/index.js",
|
|
16
|
+
"require": "./dist/index.cjs"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"README.md"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"dev": "vite --mode demo",
|
|
25
|
+
"build": "vite build && tsc --emitDeclarationOnly",
|
|
26
|
+
"build:demo": "vite build --mode demo",
|
|
27
|
+
"preview": "vite preview --outDir dist-demo",
|
|
28
|
+
"test": "npm run build && node --test --experimental-strip-types \"tests/**/*.test.ts\""
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"typescript": "^5.7.2",
|
|
33
|
+
"vite": "^8.2.2"
|
|
34
|
+
},
|
|
35
|
+
"keywords": [
|
|
36
|
+
"game-engine",
|
|
37
|
+
"2d-game",
|
|
38
|
+
"typescript",
|
|
39
|
+
"indie-game-dev",
|
|
40
|
+
"canvas2d",
|
|
41
|
+
"physics",
|
|
42
|
+
"audio",
|
|
43
|
+
"scene-management"
|
|
44
|
+
],
|
|
45
|
+
"author": "Indie Framework Team",
|
|
46
|
+
"license": "MIT"
|
|
47
|
+
}
|