@safe-engine/cocos 1.5.2 → 1.5.5
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/dist/animation/AnimationComponent.d.ts +63 -0
- package/dist/animation/AnimationComponent.d.ts.map +1 -0
- package/dist/animation/AnimationComponent.js +119 -0
- package/dist/animation/AnimationSystem.d.ts +6 -0
- package/dist/animation/AnimationSystem.d.ts.map +1 -0
- package/dist/animation/AnimationSystem.js +22 -0
- package/dist/animation/index.d.ts +2 -0
- package/dist/animation/index.d.ts.map +1 -0
- package/dist/animation/index.js +7 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +40 -65
- 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 +16 -0
- package/dist/box2d-wasm/PhysicsSprite.d.ts +12 -0
- package/dist/box2d-wasm/PhysicsSprite.d.ts.map +1 -0
- package/dist/box2d-wasm/PhysicsSprite.js +51 -0
- package/dist/box2d-wasm/PhysicsSystem.d.ts +15 -0
- package/dist/box2d-wasm/PhysicsSystem.d.ts.map +1 -0
- package/dist/box2d-wasm/PhysicsSystem.js +139 -0
- package/dist/box2d-wasm/debugDraw.d.ts +66 -0
- package/dist/box2d-wasm/debugDraw.d.ts.map +1 -0
- package/dist/box2d-wasm/debugDraw.js +210 -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 +10 -0
- package/dist/collider/CollideComponent.js +98 -159
- package/dist/collider/CollideSystem.js +63 -79
- package/dist/collider/index.d.ts +1 -1
- package/dist/collider/index.d.ts.map +1 -1
- package/dist/collider/index.js +11 -9
- package/dist/dragonbones/PixiDragonBonesSprite.js +15 -19
- package/dist/dragonbones/index.js +38 -68
- package/dist/gworld/components/AnimationComponent.d.ts +2 -2
- package/dist/gworld/components/CollideComponent.d.ts +3 -3
- package/dist/gworld/components/EnhancedComponent.js +29 -36
- package/dist/gworld/components/GUIComponent.js +50 -118
- package/dist/gworld/components/NoRenderComponent.js +25 -65
- package/dist/gworld/components/NodeComp.d.ts.map +1 -1
- package/dist/gworld/components/NodeComp.js +237 -317
- package/dist/gworld/components/RenderComponent.js +46 -104
- package/dist/gworld/core/NodePool.js +13 -20
- package/dist/gworld/core/Scene.js +11 -35
- package/dist/gworld/core/decorator.js +12 -42
- package/dist/gworld/index.js +13 -42
- package/dist/gworld/systems/CollideSystem.d.ts +1 -2
- package/dist/gworld/systems/CollideSystem.d.ts.map +1 -1
- package/dist/gworld/systems/CollideSystem.js +2 -12
- package/dist/gworld/systems/GUISystem.js +105 -120
- package/dist/gworld/systems/NoRenderSystem.d.ts.map +1 -1
- package/dist/gworld/systems/NoRenderSystem.js +70 -80
- package/dist/gworld/systems/RenderSystem.js +64 -78
- package/dist/helper/Intersection.js +33 -40
- package/dist/helper/action.js +8 -21
- package/dist/helper/director.js +2 -6
- package/dist/helper/math.js +9 -15
- package/dist/helper/utils.js +28 -37
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -31
- package/dist/polyfills.js +69 -97
- package/dist/richtext/RichTextComp.js +27 -55
- package/dist/richtext/RichTextSystem.js +17 -25
- package/dist/richtext/html-text-parser.js +36 -40
- package/dist/richtext/index.js +5 -8
- package/dist/safex.js +1 -2
- package/dist/spine/CCSkeleton.d.ts.map +1 -1
- package/dist/spine/CCSkeleton.js +25 -61
- package/dist/spine/CCSkeletonAnimation.js +18 -54
- package/dist/spine/CCSkeletonCanvasRenderCmd.d.ts +1 -1
- package/dist/spine/CCSkeletonCanvasRenderCmd.d.ts.map +1 -1
- package/dist/spine/CCSkeletonCanvasRenderCmd.js +39 -43
- package/dist/spine/CCSkeletonTexture.js +4 -40
- package/dist/spine/CCSkeletonWebGLRenderCmd.js +56 -92
- package/dist/spine/index.js +37 -63
- package/package.json +4 -1
- package/dist/dragonbones/cocos/CocosArmatureDisplay.d.ts +0 -77
- package/dist/dragonbones/cocos/CocosArmatureDisplay.d.ts.map +0 -1
- package/dist/dragonbones/cocos/CocosArmatureDisplay.js +0 -227
- package/dist/dragonbones/cocos/CocosFactory.d.ts +0 -128
- package/dist/dragonbones/cocos/CocosFactory.d.ts.map +0 -1
- package/dist/dragonbones/cocos/CocosFactory.js +0 -231
- package/dist/dragonbones/cocos/CocosSlot.d.ts +0 -49
- package/dist/dragonbones/cocos/CocosSlot.d.ts.map +0 -1
- package/dist/dragonbones/cocos/CocosSlot.js +0 -385
- package/dist/dragonbones/cocos/CocosTextureAtlasData.d.ts +0 -53
- package/dist/dragonbones/cocos/CocosTextureAtlasData.d.ts.map +0 -1
- package/dist/dragonbones/cocos/CocosTextureAtlasData.js +0 -158
- package/dist/dragonbones/dragonBones.d.ts +0 -3
- package/dist/dragonbones/dragonBones.d.ts.map +0 -1
- package/dist/dragonbones/dragonBones.js +0 -4788
- package/dist/helper/NodePool.d.ts +0 -9
- package/dist/helper/NodePool.d.ts.map +0 -1
- package/dist/helper/NodePool.js +0 -29
|
@@ -1,126 +1,111 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
var scale = cc.scaleTo(0.3, lastScaleX, lastScaleY);
|
|
1
|
+
import { EventTypes } from 'entityx-ts';
|
|
2
|
+
import { TouchEventRegister } from '../..';
|
|
3
|
+
import { Vec2 } from '../../polyfills';
|
|
4
|
+
import { BlockInputEventsComp, ButtonComp, FillType, InputComp, LabelComp, LabelOutlineComp, LabelShadowComp, ProgressTimerComp, ScrollViewComp, } from '../components/GUIComponent';
|
|
5
|
+
import { NodeComp } from '../components/NodeComp';
|
|
6
|
+
export class GUISystem {
|
|
7
|
+
defaultFont;
|
|
8
|
+
configure(event_manager) {
|
|
9
|
+
event_manager.subscribe(EventTypes.ComponentAdded, ButtonComp, this.onAddButtonComp);
|
|
10
|
+
event_manager.subscribe(EventTypes.ComponentAdded, ProgressTimerComp, this.onAddProgressTimerComp);
|
|
11
|
+
event_manager.subscribe(EventTypes.ComponentAdded, LabelComp, this.onAddLabelComp);
|
|
12
|
+
event_manager.subscribe(EventTypes.ComponentAdded, LabelOutlineComp, this.onAddLabelOutlineComp);
|
|
13
|
+
event_manager.subscribe(EventTypes.ComponentAdded, LabelShadowComp, this.onAddLabelShadowComp);
|
|
14
|
+
event_manager.subscribe(EventTypes.ComponentAdded, ScrollViewComp, this.onAddScrollViewComp);
|
|
15
|
+
event_manager.subscribe(EventTypes.ComponentAdded, InputComp, this.onAddInputComp);
|
|
16
|
+
event_manager.subscribe(EventTypes.ComponentAdded, BlockInputEventsComp, this.onAddBlockInputEventsComp);
|
|
17
|
+
}
|
|
18
|
+
onAddButtonComp = ({ entity, component: button }) => {
|
|
19
|
+
const nodeComp = entity.getComponent(NodeComp);
|
|
20
|
+
const { zoomScale = 1.2 } = button.props;
|
|
21
|
+
button.node = nodeComp;
|
|
22
|
+
const lastScaleX = nodeComp.scaleX;
|
|
23
|
+
const lastScaleY = nodeComp.scaleY;
|
|
24
|
+
const touchComp = entity.assign(new TouchEventRegister());
|
|
25
|
+
touchComp.props.onTouchStart = function (touch) {
|
|
26
|
+
const p = touch.getLocation();
|
|
27
|
+
// console.log('onTouchBegan', p, lastScaleX, lastScaleY)
|
|
28
|
+
const rect = nodeComp.getBoundingBox();
|
|
29
|
+
const nodeSpaceLocation = nodeComp.parent.convertToNodeSpace(p);
|
|
30
|
+
if (rect.contains(nodeSpaceLocation) && button.enabled && nodeComp.active) {
|
|
31
|
+
const scale = cc.scaleTo(0.3, zoomScale * lastScaleX, lastScaleY * zoomScale);
|
|
33
32
|
nodeComp.runAction(scale);
|
|
34
|
-
|
|
35
|
-
touchComp.props.onTouchCancel = touchComp.props.onTouchEnd;
|
|
36
|
-
};
|
|
37
|
-
this.onAddProgressTimerComp = function (_a) {
|
|
38
|
-
var entity = _a.entity, bar = _a.component;
|
|
39
|
-
var _b = bar.props, spriteFrame = _b.spriteFrame, _c = _b.fillType, fillType = _c === void 0 ? GUIComponent_1.FillType.HORIZONTAL : _c, _d = _b.fillRange, fillRange = _d === void 0 ? 1 : _d, _e = _b.fillCenter, fillCenter = _e === void 0 ? (0, polyfills_1.Vec2)(1, 0) : _e;
|
|
40
|
-
var sprite = new cc.Sprite(spriteFrame);
|
|
41
|
-
var pTimer = new cc.ProgressTimer(sprite);
|
|
42
|
-
var ptt = fillType === GUIComponent_1.FillType.RADIAL ? cc.ProgressTimer.TYPE_RADIAL : cc.ProgressTimer.TYPE_BAR;
|
|
43
|
-
pTimer.setType(ptt);
|
|
44
|
-
if (fillType !== GUIComponent_1.FillType.RADIAL) {
|
|
45
|
-
var rate = fillType === GUIComponent_1.FillType.HORIZONTAL ? cc.p(1, 0) : cc.p(0, 1);
|
|
46
|
-
pTimer.setBarChangeRate(rate);
|
|
47
|
-
}
|
|
48
|
-
pTimer.setPercentage(fillRange * 100);
|
|
49
|
-
pTimer.setMidpoint(fillCenter);
|
|
50
|
-
bar.node = entity.assign(new NodeComp_1.NodeComp(pTimer, entity));
|
|
51
|
-
};
|
|
52
|
-
this.onAddLabelComp = function (_a) {
|
|
53
|
-
var entity = _a.entity, label = _a.component;
|
|
54
|
-
var _b = label.props, _c = _b.string, string = _c === void 0 ? '' : _c, _d = _b.font, font = _d === void 0 ? _this.defaultFont : _d, _e = _b.size, size = _e === void 0 ? 64 : _e;
|
|
55
|
-
var fontName = cc.path.basename(font, '.ttf');
|
|
56
|
-
var node = new ccui.Text(string, fontName, size);
|
|
57
|
-
node.setTextVerticalAlignment(cc.VERTICAL_TEXT_ALIGNMENT_BOTTOM);
|
|
58
|
-
label.node = entity.assign(new NodeComp_1.NodeComp(node, entity));
|
|
59
|
-
};
|
|
60
|
-
this.onAddLabelOutlineComp = function (_a) {
|
|
61
|
-
var entity = _a.entity, outline = _a.component;
|
|
62
|
-
var _b = outline.props, color = _b.color, width = _b.width;
|
|
63
|
-
var node = entity.getComponent(NodeComp_1.NodeComp);
|
|
64
|
-
if (node.instance instanceof ccui.Text) {
|
|
65
|
-
node.instance.enableOutline(color, width);
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
this.onAddLabelShadowComp = function (_a) {
|
|
69
|
-
var entity = _a.entity, shadow = _a.component;
|
|
70
|
-
var _b = shadow.props, color = _b.color, blur = _b.blur, offset = _b.offset;
|
|
71
|
-
var node = entity.getComponent(NodeComp_1.NodeComp);
|
|
72
|
-
if (node.instance instanceof ccui.Text) {
|
|
73
|
-
node.instance.enableShadow(color, offset, blur);
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
this.onAddScrollViewComp = function (_a) {
|
|
77
|
-
var entity = _a.entity, scrollView = _a.component;
|
|
78
|
-
var _b = scrollView.props, viewSize = _b.viewSize, contentSize = _b.contentSize, _c = _b.direction, direction = _c === void 0 ? cc.SCROLLVIEW_DIRECTION_VERTICAL : _c;
|
|
79
|
-
var node = new cc.ScrollView(viewSize);
|
|
80
|
-
node.setContentSize(contentSize);
|
|
81
|
-
node.setViewSize(viewSize);
|
|
82
|
-
node.setDirection(direction);
|
|
83
|
-
// node.setContentOffset(cc.p(0, viewSize.height - contentSize.height))
|
|
84
|
-
// node.setTouchEnabled(false)
|
|
85
|
-
node.setBounceable(false);
|
|
86
|
-
scrollView.node = entity.assign(new NodeComp_1.NodeComp(node, entity));
|
|
87
|
-
};
|
|
88
|
-
this.onAddBlockInputEventsComp = function (_a) {
|
|
89
|
-
var entity = _a.entity, blockInput = _a.component;
|
|
90
|
-
var node = entity.getComponent(NodeComp_1.NodeComp);
|
|
91
|
-
if (node.instance instanceof ccui.ImageView) {
|
|
92
|
-
node.instance.setTouchEnabled(true);
|
|
93
|
-
node.instance.setScale9Enabled(true);
|
|
33
|
+
button.props.onPress(button);
|
|
94
34
|
}
|
|
95
|
-
blockInput.node = node;
|
|
96
35
|
};
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
var textField = new ccui.TextField();
|
|
101
|
-
textField.setPlaceHolder(placeHolder);
|
|
102
|
-
textField.setFontName(font);
|
|
103
|
-
textField.setFontSize(size);
|
|
104
|
-
textField.setTextColor(cc.color(255, 255, 255));
|
|
105
|
-
textField.setMaxLengthEnabled(true);
|
|
106
|
-
textField.setMaxLength(maxLength);
|
|
107
|
-
textField.setPasswordEnabled(isPassword);
|
|
108
|
-
textInput.node = entity.assign(new NodeComp_1.NodeComp(textField, entity));
|
|
36
|
+
touchComp.props.onTouchEnd = function () {
|
|
37
|
+
const scale = cc.scaleTo(0.3, lastScaleX, lastScaleY);
|
|
38
|
+
nodeComp.runAction(scale);
|
|
109
39
|
};
|
|
110
|
-
|
|
111
|
-
GUISystem.prototype.configure = function (event_manager) {
|
|
112
|
-
event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.ButtonComp, this.onAddButtonComp);
|
|
113
|
-
event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.ProgressTimerComp, this.onAddProgressTimerComp);
|
|
114
|
-
event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.LabelComp, this.onAddLabelComp);
|
|
115
|
-
event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.LabelOutlineComp, this.onAddLabelOutlineComp);
|
|
116
|
-
event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.LabelShadowComp, this.onAddLabelShadowComp);
|
|
117
|
-
event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.ScrollViewComp, this.onAddScrollViewComp);
|
|
118
|
-
event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.InputComp, this.onAddInputComp);
|
|
119
|
-
event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, GUIComponent_1.BlockInputEventsComp, this.onAddBlockInputEventsComp);
|
|
40
|
+
touchComp.props.onTouchCancel = touchComp.props.onTouchEnd;
|
|
120
41
|
};
|
|
121
|
-
|
|
122
|
-
|
|
42
|
+
onAddProgressTimerComp = ({ entity, component: bar }) => {
|
|
43
|
+
const { spriteFrame, fillType = FillType.HORIZONTAL, fillRange = 1, fillCenter = Vec2(1, 0) } = bar.props;
|
|
44
|
+
const sprite = new cc.Sprite(spriteFrame);
|
|
45
|
+
const pTimer = new cc.ProgressTimer(sprite);
|
|
46
|
+
const ptt = fillType === FillType.RADIAL ? cc.ProgressTimer.TYPE_RADIAL : cc.ProgressTimer.TYPE_BAR;
|
|
47
|
+
pTimer.setType(ptt);
|
|
48
|
+
if (fillType !== FillType.RADIAL) {
|
|
49
|
+
const rate = fillType === FillType.HORIZONTAL ? cc.p(1, 0) : cc.p(0, 1);
|
|
50
|
+
pTimer.setBarChangeRate(rate);
|
|
51
|
+
}
|
|
52
|
+
pTimer.setPercentage(fillRange * 100);
|
|
53
|
+
pTimer.setMidpoint(fillCenter);
|
|
54
|
+
bar.node = entity.assign(new NodeComp(pTimer, entity));
|
|
55
|
+
};
|
|
56
|
+
onAddLabelComp = ({ entity, component: label }) => {
|
|
57
|
+
const { string = '', font = this.defaultFont, size = 64 } = label.props;
|
|
58
|
+
const fontName = cc.path.basename(font, '.ttf');
|
|
59
|
+
const node = new ccui.Text(string, fontName, size);
|
|
60
|
+
node.setTextVerticalAlignment(cc.VERTICAL_TEXT_ALIGNMENT_BOTTOM);
|
|
61
|
+
label.node = entity.assign(new NodeComp(node, entity));
|
|
62
|
+
};
|
|
63
|
+
onAddLabelOutlineComp = ({ entity, component: outline }) => {
|
|
64
|
+
const { color, width } = outline.props;
|
|
65
|
+
const node = entity.getComponent(NodeComp);
|
|
66
|
+
if (node.instance instanceof ccui.Text) {
|
|
67
|
+
node.instance.enableOutline(color, width);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
onAddLabelShadowComp = ({ entity, component: shadow }) => {
|
|
71
|
+
const { color, blur, offset } = shadow.props;
|
|
72
|
+
const node = entity.getComponent(NodeComp);
|
|
73
|
+
if (node.instance instanceof ccui.Text) {
|
|
74
|
+
node.instance.enableShadow(color, offset, blur);
|
|
75
|
+
}
|
|
123
76
|
};
|
|
124
|
-
|
|
125
|
-
}
|
|
126
|
-
|
|
77
|
+
onAddScrollViewComp = ({ entity, component: scrollView }) => {
|
|
78
|
+
const { viewSize, contentSize, direction = cc.SCROLLVIEW_DIRECTION_VERTICAL } = scrollView.props;
|
|
79
|
+
const node = new cc.ScrollView(viewSize);
|
|
80
|
+
node.setContentSize(contentSize);
|
|
81
|
+
node.setViewSize(viewSize);
|
|
82
|
+
node.setDirection(direction);
|
|
83
|
+
// node.setContentOffset(cc.p(0, viewSize.height - contentSize.height))
|
|
84
|
+
// node.setTouchEnabled(false)
|
|
85
|
+
node.setBounceable(false);
|
|
86
|
+
scrollView.node = entity.assign(new NodeComp(node, entity));
|
|
87
|
+
};
|
|
88
|
+
onAddBlockInputEventsComp = ({ entity, component: blockInput }) => {
|
|
89
|
+
const node = entity.getComponent(NodeComp);
|
|
90
|
+
if (node.instance instanceof ccui.ImageView) {
|
|
91
|
+
node.instance.setTouchEnabled(true);
|
|
92
|
+
node.instance.setScale9Enabled(true);
|
|
93
|
+
}
|
|
94
|
+
blockInput.node = node;
|
|
95
|
+
};
|
|
96
|
+
onAddInputComp = ({ entity, component: textInput }) => {
|
|
97
|
+
const { placeHolder = '', font = this.defaultFont, size = 64, maxLength = 20, isPassword = false } = textInput.props;
|
|
98
|
+
const textField = new ccui.TextField();
|
|
99
|
+
textField.setPlaceHolder(placeHolder);
|
|
100
|
+
textField.setFontName(font);
|
|
101
|
+
textField.setFontSize(size);
|
|
102
|
+
textField.setTextColor(cc.color(255, 255, 255));
|
|
103
|
+
textField.setMaxLengthEnabled(true);
|
|
104
|
+
textField.setMaxLength(maxLength);
|
|
105
|
+
textField.setPasswordEnabled(isPassword);
|
|
106
|
+
textInput.node = entity.assign(new NodeComp(textField, entity));
|
|
107
|
+
};
|
|
108
|
+
update() {
|
|
109
|
+
// throw new Error('Method not implemented.');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoRenderSystem.d.ts","sourceRoot":"","sources":["../../../src/gworld/systems/NoRenderSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAM5E,qBAAa,cAAe,YAAW,MAAM;IAC3C,SAAS,CAAC,aAAa,EAAE,YAAY;IAMrC,uBAAuB;;;
|
|
1
|
+
{"version":3,"file":"NoRenderSystem.d.ts","sourceRoot":"","sources":["../../../src/gworld/systems/NoRenderSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAc,MAAM,EAAE,MAAM,YAAY,CAAA;AAM5E,qBAAa,cAAe,YAAW,MAAM;IAC3C,SAAS,CAAC,aAAa,EAAE,YAAY;IAMrC,uBAAuB,GAAI;;;KAAqB,UAiD/C;IAED,kBAAkB,GAAI;;KAAa,UAIlC;IAED,2BAA2B,GAAI;;KAAa,UAM3C;IAED,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;CAIjE"}
|
|
@@ -1,85 +1,75 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
var p = touch.getLocation();
|
|
28
|
-
var rect = nodeComp.getBoundingBox();
|
|
29
|
-
var nodeSpaceLocation = nodeComp.parent.convertToNodeSpace(p);
|
|
30
|
-
if (rect.contains(nodeSpaceLocation)) {
|
|
31
|
-
if (onTouchStart) {
|
|
32
|
-
onTouchStart(touch, nodeComp);
|
|
33
|
-
}
|
|
34
|
-
return true;
|
|
1
|
+
import { EventTypes } from 'entityx-ts';
|
|
2
|
+
import { NodeComp } from '../components/NodeComp';
|
|
3
|
+
import { ExtraDataComp, TouchEventRegister } from '../components/NoRenderComponent';
|
|
4
|
+
export class NoRenderSystem {
|
|
5
|
+
configure(event_manager) {
|
|
6
|
+
event_manager.subscribe(EventTypes.ComponentAdded, ExtraDataComp, this.onAddExtraDataComp);
|
|
7
|
+
event_manager.subscribe(EventTypes.ComponentAdded, TouchEventRegister, this.onAddTouchEventRegister);
|
|
8
|
+
event_manager.subscribe(EventTypes.ComponentRemoved, TouchEventRegister, this.onRemovedTouchEventRegister);
|
|
9
|
+
}
|
|
10
|
+
onAddTouchEventRegister = ({ entity, component }) => {
|
|
11
|
+
const ett = entity;
|
|
12
|
+
const touchComp = component;
|
|
13
|
+
const nodeComp = ett.getComponent(NodeComp);
|
|
14
|
+
touchComp.node = nodeComp;
|
|
15
|
+
touchComp.listener = cc.eventManager.addListener({
|
|
16
|
+
event: cc.EventListener.TOUCH_ONE_BY_ONE,
|
|
17
|
+
swallowTouches: true,
|
|
18
|
+
onTouchBegan: function (touch) {
|
|
19
|
+
const { onTouchStart } = touchComp.props;
|
|
20
|
+
// console.log('onTouchBegan', onTouchStart)
|
|
21
|
+
if (!nodeComp.parent) {
|
|
22
|
+
if (onTouchStart) {
|
|
23
|
+
onTouchStart(touch, nodeComp);
|
|
35
24
|
}
|
|
36
|
-
},
|
|
37
|
-
onTouchMoved: function (touch) {
|
|
38
|
-
var onTouchMove = touchComp.props.onTouchMove;
|
|
39
|
-
if (!onTouchMove)
|
|
40
|
-
return false;
|
|
41
|
-
onTouchMove(touch, nodeComp);
|
|
42
|
-
return true;
|
|
43
|
-
},
|
|
44
|
-
onTouchEnded: function (touch) {
|
|
45
|
-
var onTouchEnd = touchComp.props.onTouchEnd;
|
|
46
|
-
if (!onTouchEnd)
|
|
47
|
-
return false;
|
|
48
|
-
onTouchEnd(touch, nodeComp);
|
|
49
25
|
return true;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
26
|
+
}
|
|
27
|
+
const p = touch.getLocation();
|
|
28
|
+
const rect = nodeComp.getBoundingBox();
|
|
29
|
+
const nodeSpaceLocation = nodeComp.parent.convertToNodeSpace(p);
|
|
30
|
+
if (rect.contains(nodeSpaceLocation)) {
|
|
31
|
+
if (onTouchStart) {
|
|
32
|
+
onTouchStart(touch, nodeComp);
|
|
33
|
+
}
|
|
56
34
|
return true;
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
onTouchMoved: function (touch) {
|
|
38
|
+
const { onTouchMove } = touchComp.props;
|
|
39
|
+
if (!onTouchMove)
|
|
40
|
+
return false;
|
|
41
|
+
onTouchMove(touch, nodeComp);
|
|
42
|
+
return true;
|
|
43
|
+
},
|
|
44
|
+
onTouchEnded: function (touch) {
|
|
45
|
+
const { onTouchEnd } = touchComp.props;
|
|
46
|
+
if (!onTouchEnd)
|
|
47
|
+
return false;
|
|
48
|
+
onTouchEnd(touch, nodeComp);
|
|
49
|
+
return true;
|
|
50
|
+
},
|
|
51
|
+
onTouchCancelled: function (touch) {
|
|
52
|
+
const { onTouchCancel } = touchComp.props;
|
|
53
|
+
if (!onTouchCancel)
|
|
54
|
+
return false;
|
|
55
|
+
onTouchCancel(touch, nodeComp);
|
|
56
|
+
return true;
|
|
57
|
+
},
|
|
58
|
+
}, nodeComp.instance);
|
|
79
59
|
};
|
|
80
|
-
|
|
81
|
-
|
|
60
|
+
onAddExtraDataComp = ({ component }) => {
|
|
61
|
+
const extra = component;
|
|
62
|
+
const { key, value } = extra.props;
|
|
63
|
+
extra.data[key] = value;
|
|
64
|
+
};
|
|
65
|
+
onRemovedTouchEventRegister = ({ component }) => {
|
|
66
|
+
const touchComp = component;
|
|
67
|
+
if (touchComp.listener) {
|
|
68
|
+
cc.eventManager.removeListener(touchComp.listener);
|
|
69
|
+
touchComp.listener = null;
|
|
70
|
+
}
|
|
82
71
|
};
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
72
|
+
update() {
|
|
73
|
+
// throw new Error('Method not implemented.');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
var NodeComp_1 = require("../components/NodeComp");
|
|
7
|
-
var RenderComponent_1 = require("../components/RenderComponent");
|
|
8
|
-
var SpriteTypes;
|
|
1
|
+
import { EventTypes } from 'entityx-ts';
|
|
2
|
+
import { BLUE, RED } from '../../polyfills';
|
|
3
|
+
import { NodeComp } from '../components/NodeComp';
|
|
4
|
+
import { GraphicsRender, MaskRender, NodeRender, ParticleComp, SpriteRender, TiledMap } from '../components/RenderComponent';
|
|
5
|
+
export var SpriteTypes;
|
|
9
6
|
(function (SpriteTypes) {
|
|
10
7
|
SpriteTypes[SpriteTypes["SIMPLE"] = 0] = "SIMPLE";
|
|
11
8
|
SpriteTypes[SpriteTypes["SLICED"] = 1] = "SLICED";
|
|
@@ -13,76 +10,65 @@ var SpriteTypes;
|
|
|
13
10
|
SpriteTypes[SpriteTypes["FILLED"] = 3] = "FILLED";
|
|
14
11
|
SpriteTypes[SpriteTypes["MESH"] = 4] = "MESH";
|
|
15
12
|
SpriteTypes[SpriteTypes["ANIMATION"] = 5] = "ANIMATION";
|
|
16
|
-
})(SpriteTypes || (
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this.onAddNodeRender
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
this.onAddSpriteRender = function (_a) {
|
|
27
|
-
var entity = _a.entity, spriteComp = _a.component;
|
|
28
|
-
var spriteFrame = spriteComp.props.spriteFrame;
|
|
29
|
-
var frame = cc.spriteFrameCache.getSpriteFrame(spriteFrame);
|
|
30
|
-
// console.log('frame', spriteFrame, frame)
|
|
31
|
-
var node = new cc.Sprite(frame);
|
|
32
|
-
var ett = entity;
|
|
33
|
-
spriteComp.node = ett.assign(new NodeComp_1.NodeComp(node, ett));
|
|
34
|
-
};
|
|
35
|
-
this.onAddMaskRender = function (_a) {
|
|
36
|
-
var entity = _a.entity, maskComp = _a.component;
|
|
37
|
-
var inverted = maskComp.props.inverted;
|
|
38
|
-
var node = new cc.ClippingNode();
|
|
39
|
-
node.setInverted(inverted);
|
|
40
|
-
maskComp.node = entity.assign(new NodeComp_1.NodeComp(node, entity));
|
|
41
|
-
};
|
|
42
|
-
this.onAddGraphicsRender = function (_a) {
|
|
43
|
-
var entity = _a.entity;
|
|
44
|
-
var graphicsComp = entity.getComponent(RenderComponent_1.GraphicsRender);
|
|
45
|
-
var _b = graphicsComp.props, _c = _b.lineWidth, lineWidth = _c === void 0 ? 5 : _c, _d = _b.strokeColor, strokeColor = _d === void 0 ? polyfills_1.RED : _d, _e = _b.fillColor, fillColor = _e === void 0 ? polyfills_1.BLUE : _e;
|
|
46
|
-
var node = new cc.DrawNode();
|
|
47
|
-
node.setColor(strokeColor);
|
|
48
|
-
node.setDrawColor(fillColor);
|
|
49
|
-
node.setLineWidth(lineWidth);
|
|
50
|
-
graphicsComp.node = entity.assign(new NodeComp_1.NodeComp(node, entity));
|
|
51
|
-
};
|
|
52
|
-
this.onAddParticleComp = function (_a) {
|
|
53
|
-
var entity = _a.entity;
|
|
54
|
-
var particleComp = entity.getComponent(RenderComponent_1.ParticleComp);
|
|
55
|
-
var plistFile = particleComp.props.plistFile;
|
|
56
|
-
var node = new cc.ParticleSystem(plistFile);
|
|
57
|
-
particleComp.node = entity.assign(new NodeComp_1.NodeComp(node, entity));
|
|
58
|
-
};
|
|
59
|
-
this.onAddTiledMap = function (_a) {
|
|
60
|
-
var entity = _a.entity;
|
|
61
|
-
var tiledMapComp = entity.getComponent(RenderComponent_1.TiledMap);
|
|
62
|
-
var mapFile = tiledMapComp.props.mapFile;
|
|
63
|
-
var node = new cc.TMXTiledMap(mapFile);
|
|
64
|
-
tiledMapComp.node = entity.assign(new NodeComp_1.NodeComp(node, entity));
|
|
65
|
-
};
|
|
66
|
-
this.onRemovedNodeComp = function (_a) {
|
|
67
|
-
var component = _a.component;
|
|
68
|
-
var node = component;
|
|
69
|
-
if (node.instance) {
|
|
70
|
-
node.instance.removeFromParent(true);
|
|
71
|
-
}
|
|
72
|
-
};
|
|
13
|
+
})(SpriteTypes || (SpriteTypes = {}));
|
|
14
|
+
export class RenderSystem {
|
|
15
|
+
configure(event_manager) {
|
|
16
|
+
event_manager.subscribe(EventTypes.ComponentAdded, NodeRender, this.onAddNodeRender);
|
|
17
|
+
event_manager.subscribe(EventTypes.ComponentAdded, SpriteRender, this.onAddSpriteRender);
|
|
18
|
+
event_manager.subscribe(EventTypes.ComponentAdded, MaskRender, this.onAddMaskRender);
|
|
19
|
+
event_manager.subscribe(EventTypes.ComponentAdded, GraphicsRender, this.onAddGraphicsRender);
|
|
20
|
+
event_manager.subscribe(EventTypes.ComponentAdded, ParticleComp, this.onAddParticleComp);
|
|
21
|
+
event_manager.subscribe(EventTypes.ComponentAdded, TiledMap, this.onAddTiledMap);
|
|
22
|
+
event_manager.subscribe(EventTypes.ComponentRemoved, NodeComp, this.onRemovedNodeComp);
|
|
73
23
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, RenderComponent_1.ParticleComp, this.onAddParticleComp);
|
|
80
|
-
event_manager.subscribe(entityx_ts_1.EventTypes.ComponentAdded, RenderComponent_1.TiledMap, this.onAddTiledMap);
|
|
81
|
-
event_manager.subscribe(entityx_ts_1.EventTypes.ComponentRemoved, NodeComp_1.NodeComp, this.onRemovedNodeComp);
|
|
24
|
+
onAddNodeRender = ({ entity }) => {
|
|
25
|
+
const nodeRenderComp = entity.getComponent(NodeRender);
|
|
26
|
+
const node = new cc.Node();
|
|
27
|
+
const ett = entity;
|
|
28
|
+
nodeRenderComp.node = ett.assign(new NodeComp(node, ett));
|
|
82
29
|
};
|
|
83
|
-
|
|
84
|
-
|
|
30
|
+
onAddSpriteRender = ({ entity, component: spriteComp }) => {
|
|
31
|
+
const { spriteFrame } = spriteComp.props;
|
|
32
|
+
const frame = cc.spriteFrameCache.getSpriteFrame(spriteFrame);
|
|
33
|
+
// console.log('frame', spriteFrame, frame)
|
|
34
|
+
const node = new cc.Sprite(frame);
|
|
35
|
+
const ett = entity;
|
|
36
|
+
spriteComp.node = ett.assign(new NodeComp(node, ett));
|
|
37
|
+
};
|
|
38
|
+
onAddMaskRender = ({ entity, component: maskComp }) => {
|
|
39
|
+
const { inverted } = maskComp.props;
|
|
40
|
+
const node = new cc.ClippingNode();
|
|
41
|
+
node.setInverted(inverted);
|
|
42
|
+
maskComp.node = entity.assign(new NodeComp(node, entity));
|
|
43
|
+
};
|
|
44
|
+
onAddGraphicsRender = ({ entity }) => {
|
|
45
|
+
const graphicsComp = entity.getComponent(GraphicsRender);
|
|
46
|
+
const { lineWidth = 5, strokeColor = RED, fillColor = BLUE } = graphicsComp.props;
|
|
47
|
+
const node = new cc.DrawNode();
|
|
48
|
+
node.setColor(strokeColor);
|
|
49
|
+
node.setDrawColor(fillColor);
|
|
50
|
+
node.setLineWidth(lineWidth);
|
|
51
|
+
graphicsComp.node = entity.assign(new NodeComp(node, entity));
|
|
52
|
+
};
|
|
53
|
+
onAddParticleComp = ({ entity }) => {
|
|
54
|
+
const particleComp = entity.getComponent(ParticleComp);
|
|
55
|
+
const { plistFile } = particleComp.props;
|
|
56
|
+
const node = new cc.ParticleSystem(plistFile);
|
|
57
|
+
particleComp.node = entity.assign(new NodeComp(node, entity));
|
|
85
58
|
};
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
59
|
+
onAddTiledMap = ({ entity }) => {
|
|
60
|
+
const tiledMapComp = entity.getComponent(TiledMap);
|
|
61
|
+
const { mapFile } = tiledMapComp.props;
|
|
62
|
+
const node = new cc.TMXTiledMap(mapFile);
|
|
63
|
+
tiledMapComp.node = entity.assign(new NodeComp(node, entity));
|
|
64
|
+
};
|
|
65
|
+
onRemovedNodeComp = ({ component }) => {
|
|
66
|
+
const node = component;
|
|
67
|
+
if (node.instance) {
|
|
68
|
+
node.instance.removeFromParent(true);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
update() {
|
|
72
|
+
// throw new Error('Method not implemented.');
|
|
73
|
+
}
|
|
74
|
+
}
|