@safe-engine/pixi 1.0.2 → 7.0.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.
Files changed (48) hide show
  1. package/.github/workflows/npm-publish.yml +35 -0
  2. package/README.md +4 -4
  3. package/dist/app.d.ts +3 -2
  4. package/dist/app.d.ts.map +1 -1
  5. package/dist/app.js +41 -81
  6. package/dist/components/GUIComponent.d.ts +15 -14
  7. package/dist/components/GUIComponent.d.ts.map +1 -1
  8. package/dist/components/GUIComponent.js +68 -138
  9. package/dist/components/NodeComp.d.ts +6 -5
  10. package/dist/components/NodeComp.d.ts.map +1 -1
  11. package/dist/components/NodeComp.js +223 -305
  12. package/dist/components/RenderComponent.d.ts +8 -7
  13. package/dist/components/RenderComponent.d.ts.map +1 -1
  14. package/dist/components/RenderComponent.js +25 -56
  15. package/dist/core/Color.js +1 -1
  16. package/dist/core/LoadingBar.d.ts +9 -1
  17. package/dist/core/LoadingBar.d.ts.map +1 -1
  18. package/dist/core/LoadingBar.js +50 -46
  19. package/dist/core/Size.js +3 -6
  20. package/dist/core/Vec2.d.ts +20 -0
  21. package/dist/core/Vec2.d.ts.map +1 -0
  22. package/dist/core/Vec2.js +70 -0
  23. package/dist/helper/html-text-parser.js +34 -34
  24. package/dist/helper/utils.d.ts +1 -1
  25. package/dist/helper/utils.d.ts.map +1 -1
  26. package/dist/helper/utils.js +20 -24
  27. package/dist/index.d.ts +4 -6
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +4 -18
  30. package/dist/systems/GUISystem.d.ts +2 -2
  31. package/dist/systems/GUISystem.d.ts.map +1 -1
  32. package/dist/systems/GUISystem.js +39 -40
  33. package/dist/systems/RenderSystem.d.ts +0 -1
  34. package/dist/systems/RenderSystem.d.ts.map +1 -1
  35. package/dist/systems/RenderSystem.js +24 -35
  36. package/package.json +4 -3
  37. package/src/app.ts +53 -0
  38. package/src/components/GUIComponent.ts +141 -0
  39. package/src/components/NodeComp.ts +416 -0
  40. package/src/components/RenderComponent.ts +66 -0
  41. package/src/core/Color.ts +3 -0
  42. package/src/core/LoadingBar.ts +63 -0
  43. package/src/core/Size.ts +21 -0
  44. package/src/helper/html-text-parser.ts +364 -0
  45. package/src/index.ts +7 -0
  46. package/src/systems/GUISystem.ts +80 -0
  47. package/src/systems/RenderSystem.ts +70 -0
  48. package/tsconfig.json +24 -0
package/dist/index.js CHANGED
@@ -14,24 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.registerSystem = exports.instantiate = exports.GameWorld = exports.SceneComponent = exports.NoRenderComponentX = exports.ComponentX = exports.NodeComp = exports.setupResolution = exports.initWorld = exports.app = exports.addGameCanvasTo = void 0;
18
- var app_1 = require("./app");
19
- Object.defineProperty(exports, "addGameCanvasTo", { enumerable: true, get: function () { return app_1.addGameCanvasTo; } });
20
- Object.defineProperty(exports, "app", { enumerable: true, get: function () { return app_1.app; } });
21
- Object.defineProperty(exports, "initWorld", { enumerable: true, get: function () { return app_1.initWorld; } });
22
- Object.defineProperty(exports, "setupResolution", { enumerable: true, get: function () { return app_1.setupResolution; } });
17
+ __exportStar(require("./app"), exports);
23
18
  __exportStar(require("./components/GUIComponent"), exports);
24
- var NodeComp_1 = require("./components/NodeComp");
25
- Object.defineProperty(exports, "NodeComp", { enumerable: true, get: function () { return NodeComp_1.NodeComp; } });
19
+ __exportStar(require("./components/NodeComp"), exports);
26
20
  __exportStar(require("./components/RenderComponent"), exports);
27
- var decorator_1 = require("./core/decorator");
28
- Object.defineProperty(exports, "ComponentX", { enumerable: true, get: function () { return decorator_1.ComponentX; } });
29
- Object.defineProperty(exports, "NoRenderComponentX", { enumerable: true, get: function () { return decorator_1.NoRenderComponentX; } });
30
- var Scene_1 = require("./core/Scene");
31
- Object.defineProperty(exports, "SceneComponent", { enumerable: true, get: function () { return Scene_1.SceneComponent; } });
32
21
  __exportStar(require("./core/Size"), exports);
33
- var gworld_1 = require("./gworld");
34
- Object.defineProperty(exports, "GameWorld", { enumerable: true, get: function () { return gworld_1.GameWorld; } });
35
- var utils_1 = require("./helper/utils");
36
- Object.defineProperty(exports, "instantiate", { enumerable: true, get: function () { return utils_1.instantiate; } });
37
- Object.defineProperty(exports, "registerSystem", { enumerable: true, get: function () { return utils_1.registerSystem; } });
22
+ __exportStar(require("./systems/GUISystem"), exports);
23
+ __exportStar(require("./systems/RenderSystem"), exports);
@@ -1,6 +1,6 @@
1
+ import { GameWorld } from '@safe-engine/core';
1
2
  import { EventManager, System } from 'entityx-ts';
2
3
  export declare class GUISystem implements System {
3
- configure(event_manager: EventManager): void;
4
- update(): void;
4
+ configure(event_manager: EventManager<GameWorld>): void;
5
5
  }
6
6
  //# sourceMappingURL=GUISystem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GUISystem.d.ts","sourceRoot":"","sources":["../../src/systems/GUISystem.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EAEZ,MAAM,EACP,MAAM,YAAY,CAAA;AAQnB,qBAAa,SAAU,YAAW,MAAM;IACtC,SAAS,CAAC,aAAa,EAAE,YAAY;IAoDrC,MAAM;CAGP"}
1
+ {"version":3,"file":"GUISystem.d.ts","sourceRoot":"","sources":["../../src/systems/GUISystem.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EACL,YAAY,EAEZ,MAAM,EACP,MAAM,YAAY,CAAA;AAQnB,qBAAa,SAAU,YAAW,MAAM;IACtC,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC,SAAS,CAAC;CAgEjD"}
@@ -1,73 +1,72 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GUISystem = void 0;
4
- var ui_1 = require("@pixi/ui");
5
- var entityx_ts_1 = require("entityx-ts");
6
- var pixi_js_1 = require("pixi.js");
7
- var pixi_action_ease_1 = require("pixi-action-ease");
8
- var __1 = require("..");
9
- var GUIComponent_1 = require("../components/GUIComponent");
10
- var LoadingBar_1 = require("../core/LoadingBar");
11
- var GUISystem = /** @class */ (function () {
12
- function GUISystem() {
13
- }
14
- GUISystem.prototype.configure = function (event_manager) {
15
- event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.ButtonComp, function (_a) {
16
- var entity = _a.entity, component = _a.component;
17
- var nodeComp = entity.getComponent(__1.NodeComp);
4
+ const ui_1 = require("@pixi/ui");
5
+ const entityx_ts_1 = require("entityx-ts");
6
+ const pixi_js_1 = require("pixi.js");
7
+ const pixi_action_ease_1 = require("pixi-action-ease");
8
+ const __1 = require("..");
9
+ const GUIComponent_1 = require("../components/GUIComponent");
10
+ const LoadingBar_1 = require("../core/LoadingBar");
11
+ class GUISystem {
12
+ configure(event_manager) {
13
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.ButtonComp, ({ entity, component }) => {
14
+ const nodeComp = entity.getComponent(__1.NodeComp);
18
15
  // const { normalImage, selectedImage, disableImage, texType, zoomScale } = button
19
- var node = new ui_1.Button(nodeComp.instance);
16
+ const node = new ui_1.Button(nodeComp.instance);
20
17
  // node.setZoomScale(zoomScale - 1)
21
18
  component.node = nodeComp;
22
19
  // component.node = entity.assign(new NodeComp(node, entity))
23
- node.onPress.connect(function () {
20
+ node.onPress.connect(() => {
24
21
  // console.log('onPress.connect')
25
- var scale = pixi_action_ease_1.ScaleTo.create(0.12, 1.2);
26
- var scaleDown = pixi_action_ease_1.ScaleTo.create(0.12, 1);
27
- var seq = pixi_action_ease_1.Sequence.create(scale, pixi_action_ease_1.CallFunc.create(function () {
22
+ const scale = pixi_action_ease_1.ScaleTo.create(0.12, 1.2);
23
+ const scaleDown = pixi_action_ease_1.ScaleTo.create(0.12, 1);
24
+ const seq = pixi_action_ease_1.Sequence.create(scale, pixi_action_ease_1.CallFunc.create(() => {
28
25
  if (Object.prototype.hasOwnProperty.call(component, 'onPress')) {
29
26
  component.onPress(component);
30
27
  }
31
28
  }), scaleDown);
32
- var ease = pixi_action_ease_1.EaseBackIn.create(seq);
29
+ const ease = pixi_action_ease_1.EaseBackIn.create(seq);
33
30
  component.node.runAction(ease);
34
31
  });
35
32
  });
36
- event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.ProgressBarComp, function (_a) {
37
- var entity = _a.entity, component = _a.component;
38
- var spriteComp = entity.getComponent(__1.SpriteRender);
33
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.ProgressBarComp, ({ entity, component }) => {
34
+ const spriteComp = entity.getComponent(__1.SpriteRender);
39
35
  if (!spriteComp)
40
36
  throw Error('ProgressBarComp need SpriteRender');
41
- var progress = component.progress, mode = component.mode;
42
- var node = new LoadingBar_1.LoadingBar(mode, spriteComp.node.instance);
37
+ const { progress, mode } = component;
38
+ const node = new LoadingBar_1.LoadingBar(mode, spriteComp.node.instance);
43
39
  spriteComp.node.instance.mask = node;
44
40
  component.node = entity.assign(new __1.NodeComp(node, entity));
45
41
  node.progress = progress;
46
42
  });
47
- event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.ScrollView, function (_a) {
48
- var entity = _a.entity, component = _a.component;
49
- var width = component.width, height = component.height;
50
- var view = new ui_1.ScrollBox({ width: width, height: height });
43
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.ProgressTimerComp, ({ entity, component }) => {
44
+ // console.log(component, '.progress')
45
+ const { spriteFrame, fillCenter } = component;
46
+ const node = new LoadingBar_1.ProgressTimer(LoadingBar_1.LoadingBarMode.BAR, spriteFrame);
47
+ if (fillCenter) {
48
+ node.fillCenter = fillCenter;
49
+ }
50
+ component.node = entity.assign(new __1.NodeComp(node, entity));
51
+ });
52
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.ScrollView, ({ entity, component }) => {
53
+ const { width, height } = component;
54
+ const view = new ui_1.ScrollBox({ width, height });
51
55
  component.node = entity.assign(new __1.NodeComp(view, entity));
52
56
  });
53
- event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.LabelComp, function (_a) {
54
- var entity = _a.entity, component = _a.component;
55
- console.log('ComponentAddedEvent LabelComp', component);
56
- var node = new pixi_js_1.Text();
57
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.LabelComp, ({ entity, component }) => {
58
+ // console.log('ComponentAddedEvent LabelComp', component)
59
+ const node = new pixi_js_1.Text();
57
60
  // node.texture.rotate = 8
58
61
  node.style.fill = '#fff';
59
62
  component.node = entity.assign(new __1.NodeComp(node, entity));
60
- var _b = component.string, string = _b === void 0 ? '' : _b, _c = component.font, font = _c === void 0 ? '' : _c, size = component.size;
63
+ const { string = '', font = '', size } = component;
61
64
  if (font)
62
65
  component.setFont(font);
63
66
  component.setSize(size);
64
67
  component.setString(string);
65
68
  });
66
69
  // event_manager.subscribe(EventTypes.ComponentAdded, BlockInputEventsComp), this);
67
- };
68
- GUISystem.prototype.update = function () {
69
- // throw new Error('Method not implemented.');
70
- };
71
- return GUISystem;
72
- }());
70
+ }
71
+ }
73
72
  exports.GUISystem = GUISystem;
@@ -9,6 +9,5 @@ export declare enum SpriteTypes {
9
9
  }
10
10
  export declare class RenderSystem implements System {
11
11
  configure(event_manager: EventManager): void;
12
- update(): void;
13
12
  }
14
13
  //# sourceMappingURL=RenderSystem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderSystem.d.ts","sourceRoot":"","sources":["../../src/systems/RenderSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,MAAM,EACP,MAAM,YAAY,CAAA;AAOnB,oBAAY,WAAW;IACrB,MAAM,IAAA;IACN,MAAM,IAAA;IACN,KAAK,IAAA;IACL,MAAM,IAAA;IACN,IAAI,IAAA;IACJ,SAAS,IAAA;CACV;AAED,qBAAa,YAAa,YAAW,MAAM;IACzC,SAAS,CAAC,aAAa,EAAE,YAAY;IA6CrC,MAAM;CAGP"}
1
+ {"version":3,"file":"RenderSystem.d.ts","sourceRoot":"","sources":["../../src/systems/RenderSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,MAAM,EACP,MAAM,YAAY,CAAA;AAOnB,oBAAY,WAAW;IACrB,MAAM,IAAA;IACN,MAAM,IAAA;IACN,KAAK,IAAA;IACL,MAAM,IAAA;IACN,IAAI,IAAA;IACJ,SAAS,IAAA;CACV;AAED,qBAAa,YAAa,YAAW,MAAM;IACzC,SAAS,CAAC,aAAa,EAAE,YAAY;CAgDtC"}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RenderSystem = exports.SpriteTypes = void 0;
4
- var entityx_ts_1 = require("entityx-ts");
5
- var pixi_js_1 = require("pixi.js");
6
- var __1 = require("..");
7
- var RenderComponent_1 = require("../components/RenderComponent");
8
- var LoadingBar_1 = require("../core/LoadingBar");
4
+ const entityx_ts_1 = require("entityx-ts");
5
+ const pixi_js_1 = require("pixi.js");
6
+ const __1 = require("..");
7
+ const RenderComponent_1 = require("../components/RenderComponent");
8
+ const LoadingBar_1 = require("../core/LoadingBar");
9
9
  var SpriteTypes;
10
10
  (function (SpriteTypes) {
11
11
  SpriteTypes[SpriteTypes["SIMPLE"] = 0] = "SIMPLE";
@@ -15,23 +15,20 @@ var SpriteTypes;
15
15
  SpriteTypes[SpriteTypes["MESH"] = 4] = "MESH";
16
16
  SpriteTypes[SpriteTypes["ANIMATION"] = 5] = "ANIMATION";
17
17
  })(SpriteTypes || (exports.SpriteTypes = SpriteTypes = {}));
18
- var RenderSystem = /** @class */ (function () {
19
- function RenderSystem() {
20
- }
21
- RenderSystem.prototype.configure = function (event_manager) {
22
- event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, RenderComponent_1.NodeRender, function (_a) {
23
- var entity = _a.entity;
24
- var nodeRenderComp = entity.getComponent(RenderComponent_1.NodeRender);
25
- var node = new pixi_js_1.Container();
18
+ class RenderSystem {
19
+ configure(event_manager) {
20
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, RenderComponent_1.NodeRender, ({ entity }) => {
21
+ const nodeRenderComp = entity.getComponent(RenderComponent_1.NodeRender);
22
+ const node = new pixi_js_1.Container();
26
23
  nodeRenderComp.node = entity.assign(new __1.NodeComp(node, entity));
27
24
  });
28
- event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, RenderComponent_1.SpriteRender, function (_a) {
29
- var entity = _a.entity, component = _a.component;
30
- var spriteFrame = component.spriteFrame, type = component.type, fillType = component.fillType, fillRange = component.fillRange, fillCenter = component.fillCenter;
31
- var node = pixi_js_1.Sprite.from(spriteFrame);
25
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, RenderComponent_1.SpriteRender, ({ entity, component }) => {
26
+ const { spriteFrame, type, fillType, fillRange, fillCenter } = component;
27
+ // console.log('SpriteRender', component)
28
+ const node = pixi_js_1.Sprite.from(spriteFrame);
32
29
  if (type === SpriteTypes.FILLED) {
33
30
  // console.log('fillType', fillType)
34
- var loadingBar = new LoadingBar_1.LoadingBar(fillType, node);
31
+ const loadingBar = new LoadingBar_1.LoadingBar(fillType, node);
35
32
  if (fillRange)
36
33
  loadingBar.progress = fillRange;
37
34
  if (fillCenter)
@@ -44,34 +41,26 @@ var RenderSystem = /** @class */ (function () {
44
41
  // component.node.anchorX = 0.5
45
42
  // component.node.anchorY = 0.5
46
43
  });
47
- event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, RenderComponent_1.MaskRender, function (_a) {
48
- var component = _a.component;
44
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, RenderComponent_1.MaskRender, ({ component }) => {
49
45
  console.log('MaskRender', component);
50
46
  // const { type, segments, inverted } = maskComp
51
47
  // const node = new cc.ClippingNode()
52
48
  // node.setInverted(inverted)
53
49
  // maskComp.node = ett.assign(new NodeComp(node, ett))
54
50
  });
55
- event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, RenderComponent_1.GraphicsRender, function (_a) {
56
- var entity = _a.entity, component = _a.component;
57
- var lineWidth = component.lineWidth, strokeColor = component.strokeColor, fillColor = component.fillColor;
58
- var node = new pixi_js_1.Graphics();
59
- node.fill(fillColor);
60
- node.fillStyle = strokeColor;
61
- node.width = lineWidth;
51
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, RenderComponent_1.GraphicsRender, ({ entity, component }) => {
52
+ const { lineWidth, strokeColor, fillColor } = component;
53
+ const node = new pixi_js_1.Graphics();
54
+ node.beginFill(fillColor);
55
+ node.lineStyle(lineWidth, strokeColor);
62
56
  component.node = entity.assign(new __1.NodeComp(node, entity));
63
57
  // node.drawCircle(0, 0, 100)
64
58
  });
65
- event_manager.subscribe(entityx_ts_1.EventTypes.ComponentRemoved, __1.NodeComp, function (_a) {
66
- var component = _a.component;
59
+ event_manager.subscribe(entityx_ts_1.EventTypes.ComponentRemoved, __1.NodeComp, ({ component }) => {
67
60
  if (component) {
68
61
  component.instance.removeFromParent();
69
62
  }
70
63
  });
71
- };
72
- RenderSystem.prototype.update = function () {
73
- // throw new Error('Method not implemented.');
74
- };
75
- return RenderSystem;
76
- }());
64
+ }
65
+ }
77
66
  exports.RenderSystem = RenderSystem;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@safe-engine/pixi",
3
- "version": "1.0.2",
3
+ "version": "7.0.1",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -17,10 +17,11 @@
17
17
  "license": "ISC",
18
18
  "dependencies": {
19
19
  "@pixi/ui": "^2.1.5",
20
- "entityx-ts": "^2.0.2",
20
+ "@safe-engine/core": "1.0.1",
21
+ "entityx-ts": "2.0.2",
21
22
  "lodash": "^4.17.21",
22
23
  "pixi-action-ease": "^1.0.12",
23
- "pixi.js": "^8.4.0"
24
+ "pixi.js": "^7.4.2"
24
25
  },
25
26
  "devDependencies": {
26
27
  "@types/lodash": "^4.17.7",
package/src/app.ts ADDED
@@ -0,0 +1,53 @@
1
+ import { GameWorld } from '@safe-engine/core'
2
+ import { Constructor, System } from 'entityx-ts'
3
+ import { Application } from 'pixi.js'
4
+ import { actionManager } from 'pixi-action-ease'
5
+
6
+ import { NodeComp } from './components/NodeComp'
7
+
8
+ export const app = new Application({
9
+ width: 1080,
10
+ height: 1920,
11
+ antialias: true,
12
+ resolution: window.devicePixelRatio,
13
+ })
14
+
15
+ export function setupResolution(designedResolution = { width: 720, height: 1280 }) {
16
+ const { width, height } = designedResolution
17
+ app.renderer.resize(width, height)
18
+ }
19
+
20
+ export async function addGameCanvasTo(id = 'game') {
21
+ Object.assign(app.view.style, {
22
+ width: `${window.innerWidth}px`,
23
+ // height: `${window.innerHeight}px`,
24
+ overflow: 'hidden',
25
+ })
26
+
27
+ const gameDiv = document.getElementById(id)
28
+ gameDiv.appendChild(app.view as never)
29
+ GameWorld.Instance.setup(NodeComp, app.stage)
30
+ }
31
+
32
+ function startGameLoop(world: GameWorld) {
33
+ // Listen for frame updates
34
+ app.ticker.add(() => {
35
+ const dt = app.ticker.deltaMS * 0.001
36
+ actionManager.update(dt)
37
+ world.update(dt)
38
+ })
39
+ // app.ticker.speed = 0.5
40
+ }
41
+
42
+ export function startGameWithSystems(systemsList: Constructor<System>[]) {
43
+ const world = GameWorld.Instance
44
+ systemsList.forEach(system => {
45
+ world.systems.add(system)
46
+ const sys = world.systemsMap[system.name]
47
+ if (sys.update) {
48
+ world.listUpdate.push(system)
49
+ }
50
+ })
51
+ world.systems.configure()
52
+ startGameLoop(world)
53
+ }
@@ -0,0 +1,141 @@
1
+ import { ComponentX, NoRenderComponentX } from '@safe-engine/core'
2
+ import { Assets, Container, Point, Text } from 'pixi.js'
3
+
4
+ import { Color4B } from '../core/Color'
5
+ import { LoadingBar, LoadingBarMode, ProgressTimer } from '../core/LoadingBar'
6
+ import { NodeComp } from './NodeComp'
7
+
8
+ // const _htmlTextParser = new HtmlTextParser()
9
+ export const FillType = {
10
+ HORIZONTAL: 0,
11
+ VERTICAL: 1,
12
+ RADIAL: 2,
13
+ }
14
+ type Keys = keyof typeof FillType
15
+ type Values = (typeof FillType)[Keys]
16
+
17
+ export class ButtonComp extends NoRenderComponentX<NodeComp> {
18
+ normalImage: string
19
+ selectedImage: string
20
+ disableImage: string
21
+ zoomScale: number
22
+ onPress: (target: ButtonComp) => void
23
+
24
+ setOnPress(cb: (target: ButtonComp) => void) {
25
+ this.onPress = cb
26
+ }
27
+
28
+ set enabled(val) {
29
+ this.node.instance.interactive = val
30
+ }
31
+ }
32
+
33
+ export class ProgressBarComp extends NoRenderComponentX<NodeComp<LoadingBar>> {
34
+ mode = LoadingBarMode.BAR
35
+ private _progress: number
36
+ isReverse: boolean
37
+
38
+ get progress() {
39
+ return this._progress
40
+ }
41
+
42
+ set progress(val: number) {
43
+ this._progress = val
44
+ this.node.instance.progress = val
45
+ }
46
+ }
47
+
48
+ export class LabelComp extends ComponentX<NodeComp<Text>> {
49
+ font: string
50
+ string: string
51
+ size = 64
52
+
53
+ getString() {
54
+ if (this.node.instance instanceof Text) {
55
+ return this.node.instance.text
56
+ }
57
+ }
58
+
59
+ setString(val: string) {
60
+ if (this.node.instance instanceof Text) {
61
+ this.node.instance.text = val
62
+ }
63
+ }
64
+
65
+ getSize() {
66
+ if (this.node.instance instanceof Text) {
67
+ return this.node.instance.style.fontSize
68
+ }
69
+ }
70
+ setSize(val) {
71
+ if (this.node.instance instanceof Text) {
72
+ this.node.instance.style.fontSize = val
73
+ }
74
+ }
75
+
76
+ getFont() {
77
+ if (this.node.instance instanceof Text) {
78
+ return this.node.instance.style.fontFamily as string
79
+ }
80
+ }
81
+
82
+ setFont(val: string) {
83
+ // console.log('set font', val, Assets.get(val))
84
+ if (this.node.instance instanceof Text) {
85
+ if (Assets.get(val)) this.node.instance.style.fontFamily = Assets.get(val).family
86
+ }
87
+ }
88
+ }
89
+
90
+ export class ScrollView extends ComponentX<NodeComp<Container>> {
91
+ width: number
92
+ height: number
93
+ }
94
+
95
+ export class BlockInputEventsComp extends NoRenderComponentX<NodeComp<Container>> { }
96
+
97
+ export class ProgressTimerComp extends ComponentX<NodeComp<ProgressTimer>> {
98
+ spriteFrame: string
99
+ fillType: Values
100
+ fillRange: number
101
+ fillCenter: Point
102
+ isReverse: boolean
103
+
104
+ getFillRange() {
105
+ return this.node.instance.progress
106
+ }
107
+
108
+ setFillStart(val: number) {
109
+ this.node.instance.fillCenter.x = val
110
+ }
111
+
112
+ setFillRange(val: number) {
113
+ // console.log('setFillRange', this.node.instance);
114
+ this.node.instance.progress = val
115
+ }
116
+ }
117
+
118
+ export class RichTextComp extends ComponentX<NodeComp<Text>> {
119
+ protected font: string
120
+ protected string: string
121
+ protected size: number
122
+
123
+ getString() {
124
+ return this.string
125
+ }
126
+
127
+ setString(val: string) {
128
+ this.string = val
129
+ }
130
+ }
131
+
132
+ export class LabelOutlineComp extends NoRenderComponentX<NodeComp> {
133
+ color: typeof Color4B
134
+ width: number
135
+ }
136
+
137
+ export class LabelShadowComp extends NoRenderComponentX<NodeComp> {
138
+ color: typeof Color4B
139
+ blur: number
140
+ offset: Point
141
+ }