@gedit/editor-2d 0.1.31 → 0.1.38
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/lib/browser/editor2d-model-provider.d.ts +1 -0
- package/lib/browser/editor2d-model-provider.d.ts.map +1 -1
- package/lib/browser/editor2d-model-provider.js +1 -0
- package/lib/browser/editor2d-model-provider.js.map +1 -1
- package/lib/browser/editor2d-ref-provider-contribution.d.ts.map +1 -1
- package/lib/browser/editor2d-ref-provider-contribution.js +1 -0
- package/lib/browser/editor2d-ref-provider-contribution.js.map +1 -1
- package/lib/browser/model/editor2d-document.d.ts +11 -6
- package/lib/browser/model/editor2d-document.d.ts.map +1 -1
- package/lib/browser/model/editor2d-document.js +54 -20
- package/lib/browser/model/editor2d-document.js.map +1 -1
- package/lib/browser/model/editor2d.d.ts +3 -0
- package/lib/browser/model/editor2d.d.ts.map +1 -1
- package/lib/browser/model/editor2d.js +5 -0
- package/lib/browser/model/editor2d.js.map +1 -1
- package/lib/browser/playground/canvas-layer.d.ts +14 -1
- package/lib/browser/playground/canvas-layer.d.ts.map +1 -1
- package/lib/browser/playground/canvas-layer.js +72 -30
- package/lib/browser/playground/canvas-layer.js.map +1 -1
- package/lib/browser/playground/entities/editor2d-entity.d.ts +0 -1
- package/lib/browser/playground/entities/editor2d-entity.d.ts.map +1 -1
- package/lib/browser/playground/entities/editor2d-entity.js +5 -6
- package/lib/browser/playground/entities/editor2d-entity.js.map +1 -1
- package/lib/browser/playground/playground-context.d.ts +5 -3
- package/lib/browser/playground/playground-context.d.ts.map +1 -1
- package/lib/browser/playground/playground-context.js +11 -2
- package/lib/browser/playground/playground-context.js.map +1 -1
- package/lib/browser/playground/playground-contribution.d.ts.map +1 -1
- package/lib/browser/playground/playground-contribution.js +24 -26
- package/lib/browser/playground/playground-contribution.js.map +1 -1
- package/lib/browser/playground/selection-entity-manager.d.ts +4 -2
- package/lib/browser/playground/selection-entity-manager.d.ts.map +1 -1
- package/lib/browser/playground/selection-entity-manager.js +21 -24
- package/lib/browser/playground/selection-entity-manager.js.map +1 -1
- package/package.json +7 -7
- package/src/browser/editor2d-model-provider.ts +1 -0
- package/src/browser/editor2d-ref-provider-contribution.ts +1 -0
- package/src/browser/model/editor2d-document.ts +63 -14
- package/src/browser/model/editor2d.ts +7 -1
- package/src/browser/playground/canvas-layer.ts +81 -33
- package/src/browser/playground/entities/editor2d-entity.ts +5 -7
- package/src/browser/playground/playground-context.ts +9 -2
- package/src/browser/playground/playground-contribution.ts +24 -26
- package/src/browser/playground/selection-entity-manager.ts +20 -24
- package/src/.DS_Store +0 -0
- package/src/browser/.DS_Store +0 -0
|
@@ -37,16 +37,19 @@ export class SelectionEntityManager {
|
|
|
37
37
|
* @param nodePath
|
|
38
38
|
* @param node
|
|
39
39
|
* @param gameObject
|
|
40
|
+
* @param selectable
|
|
41
|
+
* @param adsorbable
|
|
40
42
|
*/
|
|
41
|
-
createEntity(nodePath: string, node: Editor2dNode, gameObject: GameObject): Editor2dEntity | undefined {
|
|
43
|
+
createEntity(nodePath: string, node: Editor2dNode, gameObject: GameObject, selectable: boolean, adsorbable: boolean): Editor2dEntity | undefined {
|
|
42
44
|
const register = this.context.renderEngine.getGameObjectIDERegister(gameObject.scene.config.engine, node.displayType);
|
|
43
45
|
const deco = register.decoration;
|
|
44
|
-
if (!register.getSelectionData) return;
|
|
46
|
+
if (!register.getSelectionData || Editor2dNode.isRootNode(node)) return;
|
|
45
47
|
const entity = this.entityManager.createEntity<Editor2dEntity>(Editor2dEntity, { id: nodePath });
|
|
46
|
-
entity.mouseSelect = deco.mouseSelect === undefined ? true : deco.mouseSelect;
|
|
47
|
-
entity.adsorbable = deco.adsorbable === undefined ? true : deco.adsorbable;
|
|
48
|
+
entity.mouseSelect = selectable && (deco.mouseSelect === undefined ? true : deco.mouseSelect);
|
|
49
|
+
entity.adsorbable = adsorbable && (deco.adsorbable === undefined ? true : deco.adsorbable);
|
|
48
50
|
entity.gameObject = gameObject;
|
|
49
51
|
entity.node = node;
|
|
52
|
+
entity.transform.sizeToScale = !!deco.sizeToScale;
|
|
50
53
|
// 切换选择框的类型,如圆形、矩形, 默认矩形
|
|
51
54
|
if (deco.selectDisplayType) {
|
|
52
55
|
entity.selectState.update({
|
|
@@ -67,26 +70,17 @@ export class SelectionEntityManager {
|
|
|
67
70
|
entity.onDispose(() => {
|
|
68
71
|
this.nodeEntitiesCache.delete(nodePath);
|
|
69
72
|
});
|
|
70
|
-
|
|
71
|
-
// 实体数据变化
|
|
72
|
-
entity.onTransformChanged((newTransform: TransformSchema) => {
|
|
73
|
+
entity.onTransformChanged((newData: TransformSchema) => {
|
|
73
74
|
const document = this.getDocument();
|
|
74
75
|
if (!document) return;
|
|
75
|
-
|
|
76
|
-
if (!lastTransform || entity.ignoreTransformChanged || !TransformSchema.is(node)) {
|
|
77
|
-
lastTransform = newTransform;
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
// 计算transform的delta偏移量
|
|
81
|
-
const delta = TransformSchema.getDelta(lastTransform, newTransform);
|
|
82
|
-
lastTransform = newTransform;
|
|
83
|
-
document.updateNode(node, TransformSchema.mergeDelta(node, delta));
|
|
76
|
+
document.updateNode(node, newData, true);
|
|
84
77
|
});
|
|
85
78
|
// 设置控制key
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
79
|
+
if (deco.selectControlKeys) {
|
|
80
|
+
entity.setControlKeys(deco.selectControlKeys);
|
|
81
|
+
} else {
|
|
82
|
+
entity.setControlKeys([]);
|
|
83
|
+
}
|
|
90
84
|
entity.selectable = false;
|
|
91
85
|
|
|
92
86
|
return entity;
|
|
@@ -97,7 +91,7 @@ export class SelectionEntityManager {
|
|
|
97
91
|
entity.dispose();
|
|
98
92
|
}
|
|
99
93
|
}
|
|
100
|
-
updateEntity(nodePath: string, gameObject: GameObject): void {
|
|
94
|
+
updateEntity(nodePath: string, gameObject: GameObject, selectable: boolean, adsorbable: boolean): void {
|
|
101
95
|
const register = this.context.renderEngine.getGameObjectIDERegister(gameObject.scene.config.engine, gameObject.type);
|
|
102
96
|
const deco = register.decoration;
|
|
103
97
|
const entity = this.nodeEntitiesCache.get(nodePath);
|
|
@@ -112,14 +106,16 @@ export class SelectionEntityManager {
|
|
|
112
106
|
entity.transform.setParent(parentEntity.transform);
|
|
113
107
|
}
|
|
114
108
|
}
|
|
109
|
+
entity.transform.isContainer = !!deco.isContainer;
|
|
115
110
|
entity.update(register.getSelectionData(gameObject));
|
|
116
111
|
entity.ignoreTransformChanged = false;
|
|
112
|
+
const sizeVisible = !gameObject.data.canvasHide && (entity.transform.size.width > 0 && entity.transform.size.height > 0 || !!deco.isContainer);
|
|
117
113
|
// 图层节点无法被选中
|
|
118
|
-
entity.selectable =
|
|
114
|
+
entity.selectable = selectable && sizeVisible;
|
|
119
115
|
// 锁定状态的节点无法通过鼠标点击
|
|
120
116
|
entity.mouseSelect = (deco.mouseSelect === undefined ? true : deco.mouseSelect) && !this.isLocked(node);
|
|
121
|
-
//
|
|
122
|
-
entity.adsorbable =
|
|
117
|
+
// 是否支持吸附
|
|
118
|
+
entity.adsorbable = adsorbable && sizeVisible && (deco.adsorbable === undefined ? true : deco.adsorbable);
|
|
123
119
|
// 同步选中状态
|
|
124
120
|
entity.selected = node.selected;
|
|
125
121
|
// 更新zIndex, 每次都要更新,因为节点拖拽会导致所有的zIndex顺序错乱
|
package/src/.DS_Store
DELETED
|
Binary file
|
package/src/browser/.DS_Store
DELETED
|
Binary file
|