@safe-engine/pixi 8.3.7 → 8.4.1
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/.github/workflows/npm-publish.yml +35 -0
- package/README.md +70 -5
- package/dist/app.d.ts +2 -5
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +44 -27
- package/dist/base/gworld.d.ts +2 -0
- package/dist/base/gworld.d.ts.map +1 -1
- package/dist/box2d-wasm/ContactListener.d.ts +12 -0
- package/dist/box2d-wasm/ContactListener.d.ts.map +1 -0
- package/dist/box2d-wasm/ContactListener.js +64 -0
- package/dist/box2d-wasm/PhysicsComponent.d.ts +50 -0
- package/dist/box2d-wasm/PhysicsComponent.d.ts.map +1 -0
- package/dist/box2d-wasm/PhysicsComponent.js +17 -0
- package/dist/box2d-wasm/PhysicsSprite.d.ts +11 -0
- package/dist/box2d-wasm/PhysicsSprite.d.ts.map +1 -0
- package/dist/box2d-wasm/PhysicsSprite.js +30 -0
- package/dist/box2d-wasm/PhysicsSystem.d.ts +17 -0
- package/dist/box2d-wasm/PhysicsSystem.d.ts.map +1 -0
- package/dist/box2d-wasm/PhysicsSystem.js +145 -0
- package/dist/box2d-wasm/debugDraw.d.ts +67 -0
- package/dist/box2d-wasm/debugDraw.d.ts.map +1 -0
- package/dist/box2d-wasm/debugDraw.js +224 -0
- package/dist/box2d-wasm/index.d.ts +6 -0
- package/dist/box2d-wasm/index.d.ts.map +1 -0
- package/dist/box2d-wasm/index.js +17 -0
- package/dist/collider/CollideComponent.d.ts.map +1 -1
- package/dist/collider/CollideComponent.js +12 -13
- package/dist/collider/CollideSystem.d.ts.map +1 -1
- package/dist/collider/CollideSystem.js +1 -2
- package/dist/collider/helper/utils.d.ts +2 -0
- package/dist/collider/helper/utils.d.ts.map +1 -1
- package/dist/collider/helper/utils.js +22 -0
- package/dist/collider/index.d.ts +1 -0
- package/dist/collider/index.d.ts.map +1 -1
- package/dist/collider/index.js +12 -0
- package/dist/components/NodeComp.d.ts +6 -4
- package/dist/components/NodeComp.d.ts.map +1 -1
- package/dist/components/NodeComp.js +13 -13
- package/dist/components/Scene.d.ts.map +1 -1
- package/dist/components/Scene.js +3 -4
- package/dist/core/director.d.ts.map +1 -1
- package/dist/core/director.js +4 -3
- package/dist/dragonbones/DragonBonesSystem.d.ts +2 -1
- package/dist/dragonbones/DragonBonesSystem.d.ts.map +1 -1
- package/dist/dragonbones/DragonBonesSystem.js +2 -0
- package/dist/dragonbones/index.d.ts +1 -0
- package/dist/dragonbones/index.d.ts.map +1 -1
- package/dist/dragonbones/index.js +7 -0
- package/dist/gui/GUIComponent.d.ts +0 -9
- package/dist/gui/GUIComponent.d.ts.map +1 -1
- package/dist/gui/GUIComponent.js +0 -37
- package/dist/gui/GUISystem.d.ts +1 -0
- package/dist/gui/GUISystem.d.ts.map +1 -1
- package/dist/gui/GUISystem.js +2 -15
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/planck/PhysicsComponent.d.ts +7 -7
- package/dist/planck/PhysicsComponent.js +4 -4
- package/dist/planck/PhysicsSystem.js +12 -12
- package/dist/richtext/RichTextComp.d.ts +17 -0
- package/dist/richtext/RichTextComp.d.ts.map +1 -0
- package/dist/richtext/RichTextComp.js +38 -0
- package/dist/richtext/RichTextSystem.d.ts +7 -0
- package/dist/richtext/RichTextSystem.d.ts.map +1 -0
- package/dist/richtext/RichTextSystem.js +25 -0
- package/dist/richtext/html-text-parser.d.ts +20 -0
- package/dist/richtext/html-text-parser.d.ts.map +1 -0
- package/dist/richtext/html-text-parser.js +64 -0
- package/dist/richtext/index.d.ts +3 -0
- package/dist/richtext/index.d.ts.map +1 -0
- package/dist/richtext/index.js +7 -0
- package/dist/spine/index.d.ts +1 -0
- package/dist/spine/index.d.ts.map +1 -1
- package/dist/spine/index.js +7 -0
- package/package.json +9 -11
- package/src/@types/index.d.ts +2 -0
- package/src/@types/safex.d.ts +15 -0
- package/src/app.ts +85 -0
- package/src/base/EnhancedComponent.ts +37 -0
- package/src/base/gworld.ts +19 -0
- package/src/base/index.ts +3 -0
- package/src/base/utils.ts +23 -0
- package/src/box2d-wasm/ContactListener.ts +66 -0
- package/src/box2d-wasm/PhysicsComponent.ts +83 -0
- package/src/box2d-wasm/PhysicsSprite.ts +42 -0
- package/src/box2d-wasm/PhysicsSystem.ts +145 -0
- package/src/box2d-wasm/debugDraw.ts +257 -0
- package/src/box2d-wasm/index.ts +19 -0
- package/src/collider/CollideComponent.ts +257 -0
- package/src/collider/CollideSystem.ts +166 -0
- package/src/collider/helper/Intersection.ts +139 -0
- package/src/collider/helper/utils.ts +37 -0
- package/src/collider/index.ts +16 -0
- package/src/components/BaseComponent.ts +17 -0
- package/src/components/NodeComp.ts +434 -0
- package/src/components/Scene.ts +17 -0
- package/src/core/Color.ts +7 -0
- package/src/core/LoadingBar.ts +63 -0
- package/src/core/NodePool.ts +28 -0
- package/src/core/Size.ts +21 -0
- package/src/core/director.ts +11 -0
- package/src/core/math.ts +13 -0
- package/src/dragonbones/DragonBonesComponent.ts +32 -0
- package/src/dragonbones/DragonBonesSystem.ts +35 -0
- package/src/dragonbones/index.ts +11 -0
- package/src/gui/GUIComponent.ts +159 -0
- package/src/gui/GUISystem.ts +116 -0
- package/src/helper/utils.ts +50 -0
- package/src/index.ts +23 -0
- package/src/norender/NoRenderComponent.ts +60 -0
- package/src/norender/NoRenderSystem.ts +66 -0
- package/src/planck/PhysicsComponent.ts +83 -0
- package/src/planck/PhysicsSprite.ts +43 -0
- package/src/planck/PhysicsSystem.ts +201 -0
- package/src/planck/index.ts +3 -0
- package/src/render/RenderComponent.ts +138 -0
- package/src/render/RenderSystem.ts +67 -0
- package/src/richtext/RichTextComp.ts +46 -0
- package/src/richtext/RichTextSystem.ts +26 -0
- package/src/richtext/html-text-parser.ts +87 -0
- package/src/richtext/index.ts +8 -0
- package/src/spine/SpineComponent.ts +18 -0
- package/src/spine/SpineSystem.ts +30 -0
- package/src/spine/index.ts +11 -0
- package/src/spine/lib/BatchableSpineSlot.ts +138 -0
- package/src/spine/lib/Spine.ts +910 -0
- package/src/spine/lib/SpineDebugRenderer.ts +615 -0
- package/src/spine/lib/SpinePipe.ts +203 -0
- package/src/spine/lib/SpineTexture.ts +143 -0
- package/src/spine/lib/assets/atlasLoader.ts +158 -0
- package/src/spine/lib/assets/skeletonLoader.ts +81 -0
- package/src/spine/lib/darktint/DarkTintBatchGeometry.ts +92 -0
- package/src/spine/lib/darktint/DarkTintBatcher.ts +186 -0
- package/src/spine/lib/darktint/DarkTintShader.ts +74 -0
- package/src/spine/lib/darktint/darkTintBit.ts +77 -0
- package/src/spine/lib/index.ts +43 -0
- package/src/spine/lib/require-shim.ts +43 -0
- package/tsconfig.json +18 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dragonbones/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dragonbones/index.ts"],"names":[],"mappings":"AAGA,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAEnC,wBAAgB,gBAAgB,SAI/B"}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
+
import { GameWorld } from '..';
|
|
2
|
+
import { DragonBonesSystem } from './DragonBonesSystem';
|
|
1
3
|
export * from './DragonBonesComponent';
|
|
2
4
|
export * from './DragonBonesSystem';
|
|
5
|
+
export function setupDragonBones() {
|
|
6
|
+
GameWorld.Instance.systems.add(DragonBonesSystem);
|
|
7
|
+
GameWorld.Instance.listUpdate.push(DragonBonesSystem);
|
|
8
|
+
GameWorld.Instance.systems.configureOnce(DragonBonesSystem);
|
|
9
|
+
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { CheckBox, CheckBoxOptions, Input, List, ProgressBar, RadioGroup, Slider, SliderOptions } from '@pixi/ui';
|
|
2
2
|
import { Container, FillInput, Point, Text } from 'pixi.js';
|
|
3
|
-
import TaggedText from 'pixi-tagged-text-plus';
|
|
4
3
|
import { ComponentX, NoRenderComponentX } from '../components/BaseComponent';
|
|
5
4
|
import { Color4B } from '../core/Color';
|
|
6
5
|
import { LoadingBarMode, ProgressTimer } from '../core/LoadingBar';
|
|
@@ -62,14 +61,6 @@ export declare class ProgressTimerComp extends ComponentX<ProgressTimerProps & {
|
|
|
62
61
|
setFillStart(val: number): void;
|
|
63
62
|
setFillRange(val: number): void;
|
|
64
63
|
}
|
|
65
|
-
export declare class RichTextComp extends ComponentX<LabelCompProps, TaggedText> {
|
|
66
|
-
get string(): string;
|
|
67
|
-
set string(val: string);
|
|
68
|
-
get size(): number;
|
|
69
|
-
set size(size: number);
|
|
70
|
-
get font(): string;
|
|
71
|
-
set font(font: string);
|
|
72
|
-
}
|
|
73
64
|
interface LabelOutlineCompProps {
|
|
74
65
|
color: Color4B;
|
|
75
66
|
width: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GUIComponent.d.ts","sourceRoot":"","sources":["../../src/gui/GUIComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACjH,OAAO,EAAU,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAEnE,OAAO,
|
|
1
|
+
{"version":3,"file":"GUIComponent.d.ts","sourceRoot":"","sources":["../../src/gui/GUIComponent.ts"],"names":[],"mappings":"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"}
|
package/dist/gui/GUIComponent.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Assets, Text } from 'pixi.js';
|
|
2
2
|
import { ComponentX, NoRenderComponentX } from '../components/BaseComponent';
|
|
3
3
|
import { LoadingBarMode } from '../core/LoadingBar';
|
|
4
|
-
import { generateStringFromStyledElements, generateStylesFromStyledElements, parseFontString, transformToStyledElements } from '../helper/html-text-parser';
|
|
5
4
|
export const FillType = {
|
|
6
5
|
HORIZONTAL: 0,
|
|
7
6
|
VERTICAL: 1,
|
|
@@ -80,42 +79,6 @@ export class ProgressTimerComp extends ComponentX {
|
|
|
80
79
|
this.node.instance.progress = val;
|
|
81
80
|
}
|
|
82
81
|
}
|
|
83
|
-
export class RichTextComp extends ComponentX {
|
|
84
|
-
get string() {
|
|
85
|
-
return this.props.string;
|
|
86
|
-
}
|
|
87
|
-
set string(val) {
|
|
88
|
-
this.props.string = val;
|
|
89
|
-
if (!this.node)
|
|
90
|
-
return;
|
|
91
|
-
const jObj = parseFontString(val);
|
|
92
|
-
const styledOutput = transformToStyledElements(jObj);
|
|
93
|
-
const newText = generateStringFromStyledElements(styledOutput);
|
|
94
|
-
const styles = generateStylesFromStyledElements(styledOutput);
|
|
95
|
-
// console.log(styledOutput)
|
|
96
|
-
const wrapped = `<root>${newText}</root>`;
|
|
97
|
-
this.node.instance.setText(wrapped);
|
|
98
|
-
this.node.instance.setTagStyles(styles);
|
|
99
|
-
}
|
|
100
|
-
get size() {
|
|
101
|
-
return this.props.size;
|
|
102
|
-
}
|
|
103
|
-
set size(size) {
|
|
104
|
-
this.props.size = size;
|
|
105
|
-
if (!this.node)
|
|
106
|
-
return;
|
|
107
|
-
this.node.instance.setStyleForTag('root', { fontSize: size, color: '#fff' });
|
|
108
|
-
}
|
|
109
|
-
get font() {
|
|
110
|
-
return this.props.font;
|
|
111
|
-
}
|
|
112
|
-
set font(font) {
|
|
113
|
-
this.props.font = font;
|
|
114
|
-
if (!this.node)
|
|
115
|
-
return;
|
|
116
|
-
this.node.instance.setStyleForTag('root', { color: '#fff', fontFamily: font });
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
82
|
export class LabelOutlineComp extends NoRenderComponentX {
|
|
120
83
|
}
|
|
121
84
|
export class LabelShadowComp extends NoRenderComponentX {
|
package/dist/gui/GUISystem.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EventManager, System } from 'entityx-ts';
|
|
2
2
|
import { GameWorld } from '../base';
|
|
3
3
|
export declare class GUISystem implements System {
|
|
4
|
+
defaultFont: string;
|
|
4
5
|
configure(event_manager: EventManager<GameWorld>): void;
|
|
5
6
|
}
|
|
6
7
|
//# sourceMappingURL=GUISystem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GUISystem.d.ts","sourceRoot":"","sources":["../../src/gui/GUISystem.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EAEZ,MAAM,EACP,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"GUISystem.d.ts","sourceRoot":"","sources":["../../src/gui/GUISystem.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EAEZ,MAAM,EACP,MAAM,YAAY,CAAA;AAKnB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAInC,qBAAa,SAAU,YAAW,MAAM;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC,SAAS,CAAC;CAmGjD"}
|
package/dist/gui/GUISystem.js
CHANGED
|
@@ -2,10 +2,9 @@ import { Button, CheckBox, List, RadioGroup, ScrollBox } from '@pixi/ui';
|
|
|
2
2
|
import { EventTypes } from 'entityx-ts';
|
|
3
3
|
import { callFunc, easeBackIn, scaleTo, sequence } from 'pixi-action-ease';
|
|
4
4
|
import { Text } from 'pixi.js';
|
|
5
|
-
import TaggedText from 'pixi-tagged-text-plus';
|
|
6
5
|
import { NodeComp } from '..';
|
|
7
6
|
import { LoadingBarMode, ProgressTimer } from '../core/LoadingBar';
|
|
8
|
-
import { ButtonComp, CheckBoxComp, LabelComp, LabelOutlineComp, LabelShadowComp, ListComp, ProgressTimerComp, RadioGroupComp,
|
|
7
|
+
import { ButtonComp, CheckBoxComp, LabelComp, LabelOutlineComp, LabelShadowComp, ListComp, ProgressTimerComp, RadioGroupComp, ScrollView } from './GUIComponent';
|
|
9
8
|
export class GUISystem {
|
|
10
9
|
configure(event_manager) {
|
|
11
10
|
event_manager.subscribe(EventTypes.ComponentAdded, ButtonComp, ({ entity, component }) => {
|
|
@@ -77,7 +76,7 @@ export class GUISystem {
|
|
|
77
76
|
// node.texture.rotate = 8
|
|
78
77
|
node.style.fill = '#fff';
|
|
79
78
|
component.node = entity.assign(new NodeComp(node, entity));
|
|
80
|
-
const { string = '', font =
|
|
79
|
+
const { string = '', font = this.defaultFont, size = 64 } = component.props;
|
|
81
80
|
if (font)
|
|
82
81
|
component.font = (font);
|
|
83
82
|
component.size = (size);
|
|
@@ -97,18 +96,6 @@ export class GUISystem {
|
|
|
97
96
|
node.instance.style.dropShadow = { color, blur, alpha: 1, angle: 0, distance: 0 };
|
|
98
97
|
}
|
|
99
98
|
});
|
|
100
|
-
event_manager.subscribe(EventTypes.ComponentAdded, RichTextComp, ({ entity, component }) => {
|
|
101
|
-
// console.log('ComponentAddedEvent LabelComp', component)
|
|
102
|
-
const { string = '', font, size = 64 } = component.props;
|
|
103
|
-
const node = new TaggedText(string);
|
|
104
|
-
// node.defaultStyle = { }
|
|
105
|
-
component.node = entity.assign(new NodeComp(node, entity));
|
|
106
|
-
component.string = (string);
|
|
107
|
-
if (font)
|
|
108
|
-
component.font = (font);
|
|
109
|
-
if (size)
|
|
110
|
-
component.size = (size);
|
|
111
|
-
});
|
|
112
99
|
// event_manager.subscribe(EventTypes.ComponentAdded, BlockInputEventsComp), this);
|
|
113
100
|
}
|
|
114
101
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,5 +19,6 @@ export * from './helper/utils';
|
|
|
19
19
|
export * from './norender/NoRenderComponent';
|
|
20
20
|
export * from './render/RenderComponent';
|
|
21
21
|
export * from './render/RenderSystem';
|
|
22
|
+
export * from './richtext';
|
|
22
23
|
export * from './spine';
|
|
23
24
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,cAAc,OAAO,CAAA;AACrB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,cAAc,OAAO,CAAA;AACrB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -22,11 +22,11 @@ interface ColliderPhysicsProps {
|
|
|
22
22
|
tag?: number;
|
|
23
23
|
group?: number;
|
|
24
24
|
offset?: Vec2;
|
|
25
|
-
onCollisionEnter?: (other:
|
|
26
|
-
onCollisionExit?: (other:
|
|
27
|
-
onCollisionStay?: (other:
|
|
25
|
+
onCollisionEnter?: (other: PhysicsCollider) => void;
|
|
26
|
+
onCollisionExit?: (other: PhysicsCollider) => void;
|
|
27
|
+
onCollisionStay?: (other: PhysicsCollider) => void;
|
|
28
28
|
}
|
|
29
|
-
export declare class
|
|
29
|
+
export declare class PhysicsCollider<T extends ColliderPhysicsProps = ColliderPhysicsProps> extends NoRenderComponentX<T, PhysicsSprite['node']> {
|
|
30
30
|
enabled: boolean;
|
|
31
31
|
instance: PhysicsSprite;
|
|
32
32
|
}
|
|
@@ -34,17 +34,17 @@ interface BoxColliderPhysicsProps extends ColliderPhysicsProps {
|
|
|
34
34
|
width: number;
|
|
35
35
|
height: number;
|
|
36
36
|
}
|
|
37
|
-
export declare class
|
|
37
|
+
export declare class PhysicsBoxCollider extends PhysicsCollider<BoxColliderPhysicsProps> {
|
|
38
38
|
}
|
|
39
39
|
interface CircleColliderPhysicsProps extends ColliderPhysicsProps {
|
|
40
40
|
radius: number;
|
|
41
41
|
}
|
|
42
|
-
export declare class
|
|
42
|
+
export declare class PhysicsCircleCollider extends PhysicsCollider<CircleColliderPhysicsProps> {
|
|
43
43
|
}
|
|
44
44
|
interface PolygonColliderPhysicsProps extends ColliderPhysicsProps {
|
|
45
45
|
points: Array<Vec2>;
|
|
46
46
|
}
|
|
47
|
-
export declare class
|
|
47
|
+
export declare class PhysicsPolygonCollider extends PhysicsCollider<PolygonColliderPhysicsProps> {
|
|
48
48
|
}
|
|
49
49
|
export {};
|
|
50
50
|
//# sourceMappingURL=PhysicsComponent.d.ts.map
|
|
@@ -3,15 +3,15 @@ export class RigidBody extends NoRenderComponentX {
|
|
|
3
3
|
}
|
|
4
4
|
export class PhysicsMaterial extends NoRenderComponentX {
|
|
5
5
|
}
|
|
6
|
-
export class
|
|
6
|
+
export class PhysicsCollider extends NoRenderComponentX {
|
|
7
7
|
constructor() {
|
|
8
8
|
super(...arguments);
|
|
9
9
|
this.enabled = true;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
export class
|
|
12
|
+
export class PhysicsBoxCollider extends PhysicsCollider {
|
|
13
13
|
}
|
|
14
|
-
export class
|
|
14
|
+
export class PhysicsCircleCollider extends PhysicsCollider {
|
|
15
15
|
}
|
|
16
|
-
export class
|
|
16
|
+
export class PhysicsPolygonCollider extends PhysicsCollider {
|
|
17
17
|
}
|
|
@@ -14,7 +14,7 @@ import { Box, Fixture, Vec2, World } from 'planck';
|
|
|
14
14
|
import { Graphics } from 'pixi.js';
|
|
15
15
|
import { GameWorld, instantiate } from '../base';
|
|
16
16
|
import { NodeComp } from '../components/NodeComp';
|
|
17
|
-
import {
|
|
17
|
+
import { PhysicsBoxCollider, PhysicsCircleCollider, PhysicsCollider, PhysicsPolygonCollider, RigidBody, } from './PhysicsComponent';
|
|
18
18
|
import { PhysicsSprite } from './PhysicsSprite';
|
|
19
19
|
Fixture.prototype.shouldCollide = function (other) {
|
|
20
20
|
const nodeThis = this.getBody().getUserData();
|
|
@@ -38,8 +38,8 @@ export class PhysicsSystem {
|
|
|
38
38
|
});
|
|
39
39
|
// event_manager.world.physicsManager = this
|
|
40
40
|
// event_manager.subscribe(ComponentAddedEvent(RigidBody), this);
|
|
41
|
-
event_manager.subscribe(EventTypes.ComponentAdded,
|
|
42
|
-
console.log('ComponentAddedEvent
|
|
41
|
+
event_manager.subscribe(EventTypes.ComponentAdded, PhysicsBoxCollider, ({ entity, component }) => {
|
|
42
|
+
console.log('ComponentAddedEvent PhysicsBoxCollider', component);
|
|
43
43
|
let rigidBody = entity.getComponent(RigidBody);
|
|
44
44
|
if (!rigidBody) {
|
|
45
45
|
rigidBody = instantiate(RigidBody);
|
|
@@ -50,7 +50,7 @@ export class PhysicsSystem {
|
|
|
50
50
|
const box = component;
|
|
51
51
|
const node = entity.getComponent(NodeComp);
|
|
52
52
|
const _a = box.props, { width, height } = _a, colliderProps = __rest(_a, ["width", "height"]);
|
|
53
|
-
// ett.assign(instantiate(
|
|
53
|
+
// ett.assign(instantiate(PhysicsCollider, { tag, offset }))
|
|
54
54
|
// const { density, restitution, friction } = physicsMaterial
|
|
55
55
|
const { x = 0, y = 0 } = colliderProps.offset || {};
|
|
56
56
|
const body = this.world.createBody({
|
|
@@ -74,13 +74,13 @@ export class PhysicsSystem {
|
|
|
74
74
|
debugBox.rect(x, y, width, height);
|
|
75
75
|
debugBox.fill({ color: 0xff0000, alpha: 0.3 });
|
|
76
76
|
node.instance.addChild(debugBox);
|
|
77
|
-
const physicsCollide = entity.assign(instantiate(
|
|
77
|
+
const physicsCollide = entity.assign(instantiate(PhysicsCollider, colliderProps));
|
|
78
78
|
physicsCollide.instance = physicsNode;
|
|
79
79
|
physicsCollide.node = node;
|
|
80
80
|
box.node = node;
|
|
81
81
|
});
|
|
82
|
-
event_manager.subscribe(EventTypes.ComponentAdded, (
|
|
83
|
-
event_manager.subscribe(EventTypes.ComponentAdded, (
|
|
82
|
+
event_manager.subscribe(EventTypes.ComponentAdded, (PhysicsCircleCollider), () => { });
|
|
83
|
+
event_manager.subscribe(EventTypes.ComponentAdded, (PhysicsPolygonCollider), () => { });
|
|
84
84
|
event_manager.subscribe(EventTypes.ComponentRemoved, (NodeComp), () => {
|
|
85
85
|
// log('ComponentRemovedEvent NodeComp', event);
|
|
86
86
|
// const node = event.entity.getComponent(NodeComp)
|
|
@@ -115,7 +115,7 @@ export class PhysicsSystem {
|
|
|
115
115
|
renderBody(body) {
|
|
116
116
|
// Render or update body rendering
|
|
117
117
|
const ett = body.getUserData();
|
|
118
|
-
const collider = ett.getComponent(
|
|
118
|
+
const collider = ett.getComponent(PhysicsCollider);
|
|
119
119
|
if (collider) {
|
|
120
120
|
collider.instance.node.position = body.getPosition();
|
|
121
121
|
collider.instance.angle = body.getAngle();
|
|
@@ -141,8 +141,8 @@ export class PhysicsSystem {
|
|
|
141
141
|
// this.listRemoveBody = []
|
|
142
142
|
// this.listRemoveShape = []
|
|
143
143
|
// })
|
|
144
|
-
const phys1 = ett1.getComponent(
|
|
145
|
-
const phys2 = ett2.getComponent(
|
|
144
|
+
const phys1 = ett1.getComponent(PhysicsCollider);
|
|
145
|
+
const phys2 = ett2.getComponent(PhysicsCollider);
|
|
146
146
|
if (phys1 && phys2) {
|
|
147
147
|
if (Object.prototype.hasOwnProperty.call(phys1, 'onCollisionEnter')) {
|
|
148
148
|
phys1.props.onCollisionEnter(phys2);
|
|
@@ -163,8 +163,8 @@ export class PhysicsSystem {
|
|
|
163
163
|
const ett1 = contact.getFixtureA().getBody().getUserData();
|
|
164
164
|
const ett2 = contact.getFixtureB().getBody().getUserData();
|
|
165
165
|
// const event1 = ett1.getComponent(NodeComp)
|
|
166
|
-
const phys1 = ett1.getComponent(
|
|
167
|
-
const phys2 = ett2.getComponent(
|
|
166
|
+
const phys1 = ett1.getComponent(PhysicsCollider);
|
|
167
|
+
const phys2 = ett2.getComponent(PhysicsCollider);
|
|
168
168
|
// const event2 = ett2.getComponent(NodeComp)
|
|
169
169
|
if (phys1 && phys2) {
|
|
170
170
|
if (Object.prototype.hasOwnProperty.call(phys1, 'onCollisionExit')) {
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import TaggedText from 'pixi-tagged-text-plus';
|
|
2
|
+
import { ComponentX } from '../components/BaseComponent';
|
|
3
|
+
interface RichTextCompProps {
|
|
4
|
+
font?: string;
|
|
5
|
+
string?: string;
|
|
6
|
+
size?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare class RichTextComp extends ComponentX<RichTextCompProps, TaggedText> {
|
|
9
|
+
get string(): string;
|
|
10
|
+
set string(val: string);
|
|
11
|
+
get size(): number;
|
|
12
|
+
set size(size: number);
|
|
13
|
+
get font(): string;
|
|
14
|
+
set font(font: string);
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=RichTextComp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RichTextComp.d.ts","sourceRoot":"","sources":["../../src/richtext/RichTextComp.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGxD,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,YAAa,SAAQ,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC;IAEzE,IAAI,MAAM,IAKM,MAAM,CAHrB;IAGD,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,EAWrB;IACD,IAAI,IAAI,IAGO,MAAM,CADpB;IACD,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAIpB;IACD,IAAI,IAAI,IAGO,MAAM,CADpB;IACD,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAIpB;CACF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ComponentX } from '../components/BaseComponent';
|
|
2
|
+
import { generateStringFromStyledElements, generateStylesFromStyledElements, parseFontString, transformToStyledElements } from './html-text-parser';
|
|
3
|
+
export class RichTextComp extends ComponentX {
|
|
4
|
+
get string() {
|
|
5
|
+
return this.props.string;
|
|
6
|
+
}
|
|
7
|
+
set string(val) {
|
|
8
|
+
this.props.string = val;
|
|
9
|
+
if (!this.node)
|
|
10
|
+
return;
|
|
11
|
+
const jObj = parseFontString(val);
|
|
12
|
+
const styledOutput = transformToStyledElements(jObj);
|
|
13
|
+
const newText = generateStringFromStyledElements(styledOutput);
|
|
14
|
+
const styles = generateStylesFromStyledElements(styledOutput);
|
|
15
|
+
// console.log(styledOutput)
|
|
16
|
+
const wrapped = `<root>${newText}</root>`;
|
|
17
|
+
this.node.instance.setText(wrapped);
|
|
18
|
+
this.node.instance.setTagStyles(styles);
|
|
19
|
+
}
|
|
20
|
+
get size() {
|
|
21
|
+
return this.props.size;
|
|
22
|
+
}
|
|
23
|
+
set size(size) {
|
|
24
|
+
this.props.size = size;
|
|
25
|
+
if (!this.node)
|
|
26
|
+
return;
|
|
27
|
+
this.node.instance.setStyleForTag('root', { fontSize: size, color: '#fff' });
|
|
28
|
+
}
|
|
29
|
+
get font() {
|
|
30
|
+
return this.props.font;
|
|
31
|
+
}
|
|
32
|
+
set font(font) {
|
|
33
|
+
this.props.font = font;
|
|
34
|
+
if (!this.node)
|
|
35
|
+
return;
|
|
36
|
+
this.node.instance.setStyleForTag('root', { color: '#fff', fontFamily: font });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { EntityManager, EventManager, System } from 'entityx-ts';
|
|
2
|
+
export declare class RichTextSystem implements System {
|
|
3
|
+
configure(event_manager: EventManager): void;
|
|
4
|
+
private onAddRichTextComp;
|
|
5
|
+
update(entities: EntityManager, events: EventManager, dt: number): any;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=RichTextSystem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RichTextSystem.d.ts","sourceRoot":"","sources":["../../src/richtext/RichTextSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAoC,MAAM,EAAE,MAAM,YAAY,CAAA;AAMlG,qBAAa,cAAe,YAAW,MAAM;IAC3C,SAAS,CAAC,aAAa,EAAE,YAAY;IAIrC,OAAO,CAAC,iBAAiB,CAQxB;IAED,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;CAIjE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { EventTypes } from 'entityx-ts';
|
|
2
|
+
import TaggedText from 'pixi-tagged-text-plus';
|
|
3
|
+
import { NodeComp } from '..';
|
|
4
|
+
import { RichTextComp } from './RichTextComp';
|
|
5
|
+
export class RichTextSystem {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.onAddRichTextComp = ({ entity, component }) => {
|
|
8
|
+
const { string = '', font = '', size = 64 } = component.props;
|
|
9
|
+
const node = new TaggedText(string);
|
|
10
|
+
// node.defaultStyle = { }
|
|
11
|
+
component.node = entity.assign(new NodeComp(node, entity));
|
|
12
|
+
component.string = (string);
|
|
13
|
+
if (font)
|
|
14
|
+
component.font = (font);
|
|
15
|
+
if (size)
|
|
16
|
+
component.size = (size);
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
configure(event_manager) {
|
|
20
|
+
event_manager.subscribe(EventTypes.ComponentAdded, RichTextComp, this.onAddRichTextComp);
|
|
21
|
+
}
|
|
22
|
+
update() {
|
|
23
|
+
// throw new Error('Method not implemented.');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
interface FontTag {
|
|
2
|
+
color?: string;
|
|
3
|
+
size?: number;
|
|
4
|
+
text: string;
|
|
5
|
+
}
|
|
6
|
+
type ParsedResult = FontTag[];
|
|
7
|
+
type StyledElement = {
|
|
8
|
+
tag?: string;
|
|
9
|
+
style?: {
|
|
10
|
+
color?: string;
|
|
11
|
+
size?: number;
|
|
12
|
+
};
|
|
13
|
+
text: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function parseFontString(input: string): ParsedResult;
|
|
16
|
+
export declare function transformToStyledElements(parsed: ParsedResult): StyledElement[];
|
|
17
|
+
export declare function generateStringFromStyledElements(elements: StyledElement[]): string;
|
|
18
|
+
export declare function generateStylesFromStyledElements(elements: StyledElement[]): {};
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=html-text-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-text-parser.d.ts","sourceRoot":"","sources":["../../src/richtext/html-text-parser.ts"],"names":[],"mappings":"AAAA,UAAU,OAAO;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,KAAK,YAAY,GAAG,OAAO,EAAE,CAAC;AAE9B,KAAK,aAAa,GAAG;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAiC3D;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,EAAE,CAa/E;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CASlF;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,aAAa,EAAE,MAWzE"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export function parseFontString(input) {
|
|
2
|
+
const regex = /<font\s+color=['"](#?[0-9a-fA-F]{6})['"](?:\s+size=(\d+))?>(.*?)<\/font>/gi;
|
|
3
|
+
const results = [];
|
|
4
|
+
let lastIndex = 0;
|
|
5
|
+
let match;
|
|
6
|
+
while ((match = regex.exec(input)) !== null) {
|
|
7
|
+
// Add plain text before the match if it exists
|
|
8
|
+
if (match.index > lastIndex) {
|
|
9
|
+
const plainText = input.slice(lastIndex, match.index);
|
|
10
|
+
if (plainText) {
|
|
11
|
+
results.push({ text: plainText });
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
const color = match[1];
|
|
15
|
+
const size = match[2] ? parseInt(match[2], 10) : undefined;
|
|
16
|
+
const text = match[3];
|
|
17
|
+
results.push({ color, size, text });
|
|
18
|
+
lastIndex = regex.lastIndex;
|
|
19
|
+
}
|
|
20
|
+
// Add remaining plain text after the last match
|
|
21
|
+
if (lastIndex < input.length) {
|
|
22
|
+
const plainText = input.slice(lastIndex);
|
|
23
|
+
if (plainText) {
|
|
24
|
+
results.push({ text: plainText });
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return results;
|
|
28
|
+
}
|
|
29
|
+
export function transformToStyledElements(parsed) {
|
|
30
|
+
return parsed.map((item, index) => {
|
|
31
|
+
if (item.color || item.size) {
|
|
32
|
+
return {
|
|
33
|
+
tag: `b${index + 1}`,
|
|
34
|
+
style: { color: item.color, size: item.size },
|
|
35
|
+
text: item.text,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
text: item.text,
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export function generateStringFromStyledElements(elements) {
|
|
44
|
+
return elements
|
|
45
|
+
.map((element) => {
|
|
46
|
+
if (!element.tag) {
|
|
47
|
+
return element.text;
|
|
48
|
+
}
|
|
49
|
+
return `<${element.tag}>${element.text}</${element.tag}>`;
|
|
50
|
+
})
|
|
51
|
+
.join('');
|
|
52
|
+
}
|
|
53
|
+
export function generateStylesFromStyledElements(elements) {
|
|
54
|
+
const styles = {};
|
|
55
|
+
elements
|
|
56
|
+
.forEach((element) => {
|
|
57
|
+
const { tag, style } = element;
|
|
58
|
+
if (!tag) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
styles[element.tag] = style;
|
|
62
|
+
});
|
|
63
|
+
return styles;
|
|
64
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/richtext/index.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAA;AAE9B,wBAAgB,aAAa,SAG5B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { GameWorld } from '..';
|
|
2
|
+
import { RichTextSystem } from './RichTextSystem';
|
|
3
|
+
export * from './RichTextComp';
|
|
4
|
+
export function setupRichText() {
|
|
5
|
+
GameWorld.Instance.systems.add(RichTextSystem);
|
|
6
|
+
GameWorld.Instance.systems.configureOnce(RichTextSystem);
|
|
7
|
+
}
|
package/dist/spine/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/spine/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/spine/index.ts"],"names":[],"mappings":"AAGA,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAE7B,wBAAgB,UAAU,SAIzB"}
|
package/dist/spine/index.js
CHANGED
|
@@ -1,2 +1,9 @@
|
|
|
1
|
+
import { GameWorld } from '..';
|
|
2
|
+
import { SpineSystem } from './SpineSystem';
|
|
1
3
|
export * from './SpineComponent';
|
|
2
4
|
export * from './SpineSystem';
|
|
5
|
+
export function setupSpine() {
|
|
6
|
+
GameWorld.Instance.systems.add(SpineSystem);
|
|
7
|
+
// GameWorld.Instance.listUpdate.push(SpineSystem)
|
|
8
|
+
GameWorld.Instance.systems.configureOnce(SpineSystem);
|
|
9
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@safe-engine/pixi",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.4.1",
|
|
4
4
|
"description": "safex pixi plugin",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -16,20 +16,18 @@
|
|
|
16
16
|
"author": "",
|
|
17
17
|
"license": "ISC",
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@esotericsoftware/spine-core": "^4.2.
|
|
20
|
-
"@pixi/ui": "^2.2.
|
|
21
|
-
"@types/node": "^
|
|
19
|
+
"@esotericsoftware/spine-core": "^4.2.84",
|
|
20
|
+
"@pixi/ui": "^2.2.4",
|
|
21
|
+
"@types/node": "^24.0.10",
|
|
22
22
|
"copyfiles": "^2.4.1",
|
|
23
|
-
"dragonbones-pixijs": "^1.0.
|
|
24
|
-
"entityx-ts": "^2.1
|
|
25
|
-
"lodash": "^4.17.21",
|
|
23
|
+
"dragonbones-pixijs": "^1.0.5",
|
|
24
|
+
"entityx-ts": "^2.2.1",
|
|
26
25
|
"pixi-action-ease": "^3.0.6",
|
|
27
26
|
"pixi-tagged-text-plus": "0.0.1-next.2",
|
|
28
|
-
"pixi.js": "8.
|
|
29
|
-
"planck": "^1.
|
|
27
|
+
"pixi.js": "8.10.2",
|
|
28
|
+
"planck": "^1.4.2"
|
|
30
29
|
},
|
|
31
30
|
"devDependencies": {
|
|
32
|
-
"
|
|
33
|
-
"typescript": "^5.7.3"
|
|
31
|
+
"typescript": "^5.8.3"
|
|
34
32
|
}
|
|
35
33
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { NodeComp } from "..";
|
|
2
|
+
|
|
3
|
+
interface BaseComponentProps {
|
|
4
|
+
$ref?: object;
|
|
5
|
+
$refNode?: NodeComp<any>
|
|
6
|
+
$push?: object[];
|
|
7
|
+
node?: Partial<NodeComp>;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface NodeCompProps {
|
|
11
|
+
nodeName?: string
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
interface LoadingBarProps {
|
|
15
|
+
}
|