From 88a81bd9d60e0048ae01d0195058a3214e9d618d Mon Sep 17 00:00:00 2001 From: yyc-git <395976266@qq.com> Date: Tue, 19 Dec 2023 12:06:24 +0800 Subject: [PATCH] fix(editor): fix export single event->import it bug description has these bugs: has Aux Scene->Scene; name miss; light has one child; game view's Camera change; (fix(action): fix action->bundle duplicate bug) --- .cz-config.js | 1 + .../meta3d-action-add-cube/package.json | 2 +- .../meta3d-action-add-cube/src/Main.ts | 2 +- .../package.json | 2 +- .../src/Main.ts | 3 +- .../package.json | 2 +- .../src/Main.ts | 2 +- .../package.json | 2 +- .../src/Main.ts | 4 +- .../src/Main.ts | 3 +- contributes/meta3d-action-run/src/Main.ts | 2 +- .../package.json | 2 +- .../src/Main.ts | 4 +- .../src/Main.ts | 2 +- .../src/Main.ts | 2 +- .../src/Main.ts | 2 +- .../meta3d-action-set-localscale/src/Main.ts | 2 +- .../meta3d-action-set-parent/package.json | 2 +- .../meta3d-action-set-parent/src/Main.ts | 10 ++--- .../meta3d-input-scenetree/package.json | 2 +- .../meta3d-input-scenetree/src/Main.ts | 13 ++++--- doc/1.0.0-beta1_3.org | 38 +++++++++++++++++++ .../extensions/meta3d-load-glb/package.json | 2 +- .../meta3d-load-glb/src/three/GLTFLoader.js | 9 ++++- .../package.json | 2 +- .../src/SyncUtils.ts | 2 +- .../meta3d-export-scene/package.json | 2 +- .../src/three/GLTFExporter.js | 5 +-- .../meta3d-import-scene/package.json | 2 +- .../meta3d-import-scene/src/Main.ts | 4 +- .../meta3d-editor-whole-protocol/package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- .../src/service/ServiceType.ts | 3 +- .../src/GameViewRenderUtils.ts | 7 ++-- .../src/CreateDefaultSceneJobUtils.ts | 1 - .../src/Classes.ts | 12 ++++-- .../src/Main.ts | 19 ++++++++-- .../src/SceneTreeUtils.ts | 17 ++++----- 39 files changed, 128 insertions(+), 69 deletions(-) diff --git a/.cz-config.js b/.cz-config.js index daeebec65..24ca35a5e 100755 --- a/.cz-config.js +++ b/.cz-config.js @@ -17,6 +17,7 @@ module.exports = { scopes: [ { name: "editor" }, { name: "engine" }, + { name: "extension" }, { name: "platform" }, { name: "services" }, { name: "templates" }, diff --git a/contributes/meta3d-action-add-cube/package.json b/contributes/meta3d-action-add-cube/package.json index d4bcc8075..72e5daa96 100755 --- a/contributes/meta3d-action-add-cube/package.json +++ b/contributes/meta3d-action-add-cube/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-action-add-cube", - "version": "0.21.4", + "version": "0.21.5", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "displayName": "add-cube", "repoLink": "https://github.com/Meta3D-Technology/Meta3D/tree/master/contributes/meta3d-action-add-cube", diff --git a/contributes/meta3d-action-add-cube/src/Main.ts b/contributes/meta3d-action-add-cube/src/Main.ts index 1bb224087..261f551b8 100755 --- a/contributes/meta3d-action-add-cube/src/Main.ts +++ b/contributes/meta3d-action-add-cube/src/Main.ts @@ -37,7 +37,7 @@ export let getContribute: getContributeMeta3D> = state.addedGameObjects.push(addedGameObject) }) - return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) + return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState,api, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) }, (meta3dState) => { let { addedGameObjects, diff --git a/contributes/meta3d-action-add-glb-to-scene/package.json b/contributes/meta3d-action-add-glb-to-scene/package.json index 6641650b7..bf4a9af89 100755 --- a/contributes/meta3d-action-add-glb-to-scene/package.json +++ b/contributes/meta3d-action-add-glb-to-scene/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-action-add-glb-to-scene", - "version": "0.21.4", + "version": "0.21.5", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "repoLink": "", "protocol": { diff --git a/contributes/meta3d-action-add-glb-to-scene/src/Main.ts b/contributes/meta3d-action-add-glb-to-scene/src/Main.ts index 4b7832496..c06f29a6e 100755 --- a/contributes/meta3d-action-add-glb-to-scene/src/Main.ts +++ b/contributes/meta3d-action-add-glb-to-scene/src/Main.ts @@ -7,7 +7,6 @@ import { eventName, inputData } from "meta3d-action-drop-glb-to-sceneview-protoc // import { service as converterGameViewService } from "meta3d-scenegraph-converter-three-gameview-protocol/src/service/ServiceType" // import { service as runEngineGameViewService } from "meta3d-editor-run-engine-gameview-protocol/src/service/ServiceType" // import { service as assetService } from "meta3d-asset-protocol/src/service/ServiceType" -// import { getExn, isNullable } from "meta3d-commonlib-ts/src/NullableUtils" // import { getActionState, setElementStateField } from "meta3d-ui-utils/src/ElementStateUtils" // import { getState, setState } from "./Utils" import { disposeGameObjectAndAllChildren } from "meta3d-dispose-utils/src/DisposeGameObjectUtils" @@ -59,7 +58,7 @@ export let getContribute: getContributeMeta3D { let { diff --git a/contributes/meta3d-action-clone-gameobject/package.json b/contributes/meta3d-action-clone-gameobject/package.json index 023a47470..abfc7d6cd 100755 --- a/contributes/meta3d-action-clone-gameobject/package.json +++ b/contributes/meta3d-action-clone-gameobject/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-action-clone-gameobject", - "version": "0.21.3", + "version": "0.21.4", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "repoLink": "", "protocol": { diff --git a/contributes/meta3d-action-clone-gameobject/src/Main.ts b/contributes/meta3d-action-clone-gameobject/src/Main.ts index 2ff6230bb..bf2db6e45 100755 --- a/contributes/meta3d-action-clone-gameobject/src/Main.ts +++ b/contributes/meta3d-action-clone-gameobject/src/Main.ts @@ -39,7 +39,7 @@ export let getContribute: getContributeMeta3D> = allClonedGameObjects: state.allClonedGameObjects.push(api.immutable.createListOfData( clonedGameObjects)), }) - return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) + return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState,api, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) }, (meta3dState) => { let { allClonedGameObjects, diff --git a/contributes/meta3d-action-dispose-gameobject/package.json b/contributes/meta3d-action-dispose-gameobject/package.json index ffd29b23a..01c4b971d 100755 --- a/contributes/meta3d-action-dispose-gameobject/package.json +++ b/contributes/meta3d-action-dispose-gameobject/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-action-dispose-gameobject", - "version": "0.21.3", + "version": "0.21.4", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "repoLink": "", "protocol": { diff --git a/contributes/meta3d-action-dispose-gameobject/src/Main.ts b/contributes/meta3d-action-dispose-gameobject/src/Main.ts index 391e79d5c..dfffd8b03 100755 --- a/contributes/meta3d-action-dispose-gameobject/src/Main.ts +++ b/contributes/meta3d-action-dispose-gameobject/src/Main.ts @@ -75,7 +75,7 @@ export let getContribute: getContributeMeta3D> = meta3dState = api.action.setActionState(meta3dState, actionName, { ...state, allSelectedGameObjects: state.allSelectedGameObjects.push(selectedGameObject), - allDisposedGameObjectData: state.allDisposedGameObjectData.push(api.immutable.createListOfData( disposedGameObjectData)), + allDisposedGameObjectData: state.allDisposedGameObjectData.push(api.immutable.createListOfData(disposedGameObjectData)), }) meta3dState = api.action.setActionState(meta3dState, selectSceneTreeNodeActionName, { @@ -102,7 +102,7 @@ export let getContribute: getContributeMeta3D> = }) - return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) + return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState, api, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) }, (meta3dState) => { let { allSelectedGameObjects, diff --git a/contributes/meta3d-action-import-single-event/src/Main.ts b/contributes/meta3d-action-import-single-event/src/Main.ts index c851da466..813897a4c 100755 --- a/contributes/meta3d-action-import-single-event/src/Main.ts +++ b/contributes/meta3d-action-import-single-event/src/Main.ts @@ -4,7 +4,6 @@ import { eventSourcingService } from "meta3d-event-protocol/src/service/ServiceT import { uiData, actionName, state } from "meta3d-action-import-single-event-protocol" import { eventName, inputData } from "meta3d-action-import-single-event-protocol/src/EventType" // import { service as eventSourcingService } from "meta3d-event-sourcing-protocol/src/service/ServiceType" -// import { api.nullable.getExn } from "meta3d-commonlib-ts/src/NullableUtils" // import { service as importSceneService } from "meta3d-import-scene-protocol/src/service/ServiceType" // import { service as assetService } from "meta3d-asset-protocol/src/service/ServiceType" // import { service as runEngineGameViewService } from "meta3d-editor-run-engine-gameview-protocol/src/service/ServiceType" @@ -38,7 +37,7 @@ export let getContribute: getContributeMeta3D> = // meta3dState = assetService.importAsset(meta3dState, assetFile) - return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) + return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState,api, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) }) }, (meta3dState) => { return Promise.resolve(meta3dState) diff --git a/contributes/meta3d-action-run/src/Main.ts b/contributes/meta3d-action-run/src/Main.ts index 66b482ce9..5f337f298 100755 --- a/contributes/meta3d-action-run/src/Main.ts +++ b/contributes/meta3d-action-run/src/Main.ts @@ -61,7 +61,7 @@ export let getContribute: getContributeMeta3D> = init: (meta3dState) => { let eventSourcingService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).event(meta3dState).eventSourcing(meta3dState) - // meta3dState = runGameViewRenderOnlyOnce(meta3dState, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol"))) + // meta3dState = runGameViewRenderOnlyOnce(meta3dState,api, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol"))) return new Promise((resolve, reject) => { resolve(eventSourcingService.on(meta3dState, eventName, 0, (meta3dState) => { diff --git a/contributes/meta3d-action-select-scenetree-node/package.json b/contributes/meta3d-action-select-scenetree-node/package.json index dd20fcab6..077a441e8 100755 --- a/contributes/meta3d-action-select-scenetree-node/package.json +++ b/contributes/meta3d-action-select-scenetree-node/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-action-select-scenetree-node", - "version": "0.21.3", + "version": "0.21.4", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "repoLink": "", "protocol": { diff --git a/contributes/meta3d-action-select-scenetree-node/src/Main.ts b/contributes/meta3d-action-select-scenetree-node/src/Main.ts index be316a363..36bb2e099 100755 --- a/contributes/meta3d-action-select-scenetree-node/src/Main.ts +++ b/contributes/meta3d-action-select-scenetree-node/src/Main.ts @@ -49,9 +49,9 @@ export let getContribute: getContributeMeta3D> = resolve(eventSourcingService.addEvent(meta3dState, { name: eventName, inputData: [ - findSelectedGameObject(buildHierachyGameObjects([], + findSelectedGameObject(api, buildHierachyGameObjects(api, [], editorWholeService, - meta3dState, getAllTopGameObjects(meta3dState, editorWholeService)), api.nullable.getExn(uiData)) + meta3dState, getAllTopGameObjects(api, meta3dState, editorWholeService)), api.nullable.getExn(uiData)) ] })) }) diff --git a/contributes/meta3d-action-set-gameobjectname/src/Main.ts b/contributes/meta3d-action-set-gameobjectname/src/Main.ts index fc833b199..6d1c6291f 100755 --- a/contributes/meta3d-action-set-gameobjectname/src/Main.ts +++ b/contributes/meta3d-action-set-gameobjectname/src/Main.ts @@ -32,7 +32,7 @@ export let getContribute: getContributeMeta3D> = allGameObjectNameData: state.allGameObjectNameData.push([gameObject, oldName]), }) - return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) + return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState,api, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) }, (meta3dState) => { let { allGameObjectNameData diff --git a/contributes/meta3d-action-set-localeulerangle/src/Main.ts b/contributes/meta3d-action-set-localeulerangle/src/Main.ts index 04582a750..cd480fff0 100755 --- a/contributes/meta3d-action-set-localeulerangle/src/Main.ts +++ b/contributes/meta3d-action-set-localeulerangle/src/Main.ts @@ -36,7 +36,7 @@ export let getContribute: getContributeMeta3D> = allLocalEulerAngleData: state.allLocalEulerAngleData.push([gameObject, oldLocalEulerAngle]), }) - return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) + return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState,api, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) }, (meta3dState) => { let { allLocalEulerAngleData diff --git a/contributes/meta3d-action-set-localposition/src/Main.ts b/contributes/meta3d-action-set-localposition/src/Main.ts index 90948425a..d534048c2 100755 --- a/contributes/meta3d-action-set-localposition/src/Main.ts +++ b/contributes/meta3d-action-set-localposition/src/Main.ts @@ -36,7 +36,7 @@ export let getContribute: getContributeMeta3D> = allLocalPositionData: state.allLocalPositionData.push([gameObject, oldLocalPosition]), }) - return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) + return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState,api, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) }, (meta3dState) => { let { allLocalPositionData diff --git a/contributes/meta3d-action-set-localscale/src/Main.ts b/contributes/meta3d-action-set-localscale/src/Main.ts index e73f668cc..04bb32ce8 100755 --- a/contributes/meta3d-action-set-localscale/src/Main.ts +++ b/contributes/meta3d-action-set-localscale/src/Main.ts @@ -36,7 +36,7 @@ export let getContribute: getContributeMeta3D> = allLocalScaleData: state.allLocalScaleData.push([gameObject, oldLocalScale]), }) - return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) + return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState,api, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) }, (meta3dState) => { let { allLocalScaleData diff --git a/contributes/meta3d-action-set-parent/package.json b/contributes/meta3d-action-set-parent/package.json index 3477bd2b3..a75994c42 100755 --- a/contributes/meta3d-action-set-parent/package.json +++ b/contributes/meta3d-action-set-parent/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-action-set-parent", - "version": "0.21.3", + "version": "0.21.7", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "repoLink": "", "protocol": { diff --git a/contributes/meta3d-action-set-parent/src/Main.ts b/contributes/meta3d-action-set-parent/src/Main.ts index 05a869fb8..0e2825d5d 100755 --- a/contributes/meta3d-action-set-parent/src/Main.ts +++ b/contributes/meta3d-action-set-parent/src/Main.ts @@ -39,7 +39,7 @@ export let getContribute: getContributeMeta3D> = }) - return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) + return Promise.resolve(runGameViewRenderOnlyOnce(meta3dState, api, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")))) }, (meta3dState) => { let state = api.nullable.getExn(api.action.getActionState(meta3dState, actionName)) let { @@ -79,15 +79,15 @@ export let getContribute: getContributeMeta3D> = let { source, target } = uiData - let hierachyGameObjects = buildHierachyGameObjects([], + let hierachyGameObjects = buildHierachyGameObjects(api, [], editorWholeService, - meta3dState, getAllTopGameObjects(meta3dState, editorWholeService)) + meta3dState, getAllTopGameObjects(api, meta3dState, editorWholeService)) resolve(eventSourcingService.addEvent(meta3dState, { name: eventName, inputData: [{ - source: findSelectedGameObject(hierachyGameObjects, source), - target: target.length == 0 ? null : findSelectedGameObject(hierachyGameObjects, target) + source: findSelectedGameObject(api, hierachyGameObjects, source), + target: target.length == 0 ? null : findSelectedGameObject(api, hierachyGameObjects, target) }] })) }) diff --git a/contributes/meta3d-input-scenetree/package.json b/contributes/meta3d-input-scenetree/package.json index 89e8af988..2e34d53d7 100755 --- a/contributes/meta3d-input-scenetree/package.json +++ b/contributes/meta3d-input-scenetree/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-input-scenetree", - "version": "0.21.3", + "version": "0.21.5", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "description": "", "protocol": { diff --git a/contributes/meta3d-input-scenetree/src/Main.ts b/contributes/meta3d-input-scenetree/src/Main.ts index ab1620d7d..7bb018940 100755 --- a/contributes/meta3d-input-scenetree/src/Main.ts +++ b/contributes/meta3d-input-scenetree/src/Main.ts @@ -1,11 +1,11 @@ -import { state as meta3dState, getContribute as getContributeMeta3D } from "meta3d-type" +import { state as meta3dState, getContribute as getContributeMeta3D, api } from "meta3d-type" import { data, nodeType } from "meta3d-input-tree-protocol" import { inputContribute } from "meta3d-editor-whole-protocol/src/service/ServiceType" import { hierachyGameObjects, getAllTopGameObjects, buildHierachyGameObjects } from "meta3d-scenetree-utils/src/SceneTreeUtils" import { service } from "meta3d-editor-whole-protocol/src/service/ServiceType" -import { getWithDefault } from "meta3d-commonlib-ts/src/NullableUtils" let _convertToTreeData = ( + api: api, editorWholeService: service, meta3dState: meta3dState, hierachyGameObjects: hierachyGameObjects, ): data => { @@ -13,11 +13,11 @@ let _convertToTreeData = ( return hierachyGameObjects.map(([gameObject_, children]) => { return [ - getWithDefault(gameObject.getGameObjectName(meta3dState, gameObject_), ""), + api.nullable.getWithDefault(gameObject.getGameObjectName(meta3dState, gameObject_), ""), gameObject.hasBasicCameraView(meta3dState, gameObject_) && gameObject.hasPerspectiveCameraProjection(meta3dState, gameObject_) ? nodeType.Type1 : gameObject.hasDirectionLight(meta3dState, gameObject_) ? nodeType.Type2 : nodeType.Type3, - _convertToTreeData(editorWholeService, meta3dState, children) + _convertToTreeData(api, editorWholeService, meta3dState, children) ] }) } @@ -28,11 +28,12 @@ export let getContribute: getContributeMeta3D> = (api) => func: (meta3dState) => { let editorWholeService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")) - let hierachyGameObjects = buildHierachyGameObjects([], + let hierachyGameObjects = buildHierachyGameObjects(api,[], editorWholeService, - meta3dState, getAllTopGameObjects(meta3dState, editorWholeService)) + meta3dState, getAllTopGameObjects(api, meta3dState, editorWholeService)) return Promise.resolve(_convertToTreeData( + api, editorWholeService, meta3dState, hierachyGameObjects )) diff --git a/doc/1.0.0-beta1_3.org b/doc/1.0.0-beta1_3.org index 7ae5b998d..97f6776fe 100755 --- a/doc/1.0.0-beta1_3.org +++ b/doc/1.0.0-beta1_3.org @@ -316,6 +316,44 @@ TODO fix message TODO add all ui controls +TODO fix: wheel event not work + +# TODO fix: dispose gameObject error + +# TODO fix: import: cube: position,color not the same +TODO fix: export single event: +# another Aux Scene +# name miss +//Cube name change +# light has one child +# Camera change + + +TODO update and publish: +engine-whole +editor-whole +asset +three + + + +TODO test publish + + + + +TODO not newest ui control? + + + + +TODO test controller + +TODO test asset + +TODO test inspector + + # * TODO 更新extension diff --git a/packages/asset/extensions/meta3d-load-glb/package.json b/packages/asset/extensions/meta3d-load-glb/package.json index ae48062d4..b97e092df 100755 --- a/packages/asset/extensions/meta3d-load-glb/package.json +++ b/packages/asset/extensions/meta3d-load-glb/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-load-glb", - "version": "0.21.4", + "version": "0.21.5", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "protocol": { "name": "meta3d-load-glb-protocol" diff --git a/packages/asset/extensions/meta3d-load-glb/src/three/GLTFLoader.js b/packages/asset/extensions/meta3d-load-glb/src/three/GLTFLoader.js index 6cc1a8afe..362369817 100755 --- a/packages/asset/extensions/meta3d-load-glb/src/three/GLTFLoader.js +++ b/packages/asset/extensions/meta3d-load-glb/src/three/GLTFLoader.js @@ -698,7 +698,14 @@ class GLTFLightsExtension { case 'directional': lightNode = new DirectionalLight(color); lightNode.target.position.set(0, 0, - 1); - lightNode.add(lightNode.target); + + + /*! edit by Meta3D + * + */ + // lightNode.add(lightNode.target); + + break; case 'point': diff --git a/packages/editor-whole/extensions/meta3d-editor-webgl1-three-whole/package.json b/packages/editor-whole/extensions/meta3d-editor-webgl1-three-whole/package.json index efa2ca40f..401190ad1 100755 --- a/packages/editor-whole/extensions/meta3d-editor-webgl1-three-whole/package.json +++ b/packages/editor-whole/extensions/meta3d-editor-webgl1-three-whole/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-editor-webgl1-three-whole", - "version": "0.21.5", + "version": "0.21.6", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "protocol": { "name": "meta3d-editor-whole-protocol" diff --git a/packages/editor-whole/extensions/meta3d-editor-webgl1-three-whole/src/SyncUtils.ts b/packages/editor-whole/extensions/meta3d-editor-webgl1-three-whole/src/SyncUtils.ts index 10d607da9..e7d2e0985 100755 --- a/packages/editor-whole/extensions/meta3d-editor-webgl1-three-whole/src/SyncUtils.ts +++ b/packages/editor-whole/extensions/meta3d-editor-webgl1-three-whole/src/SyncUtils.ts @@ -64,7 +64,7 @@ export let sync = (meta3dState: meta3dState, api: api) => { ).then(meta3dState => { return eventSourcingService.replaceAllEvents(meta3dState, allEvents.slice(0, allEvents.count() - events.count())) }).then(meta3dState => { - return runGameViewRenderOnlyOnce(meta3dState, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol"))) + return runGameViewRenderOnlyOnce(meta3dState,api, api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol"))) }) // .then(meta3dState => { // return eventSourcingService.cleanAllNeedEvents(meta3dState) diff --git a/packages/editor-whole/extensions/meta3d-export-scene/package.json b/packages/editor-whole/extensions/meta3d-export-scene/package.json index d5a5ffd31..3f20f708b 100755 --- a/packages/editor-whole/extensions/meta3d-export-scene/package.json +++ b/packages/editor-whole/extensions/meta3d-export-scene/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-export-scene", - "version": "0.21.4", + "version": "0.21.5", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "protocol": { "name": "meta3d-export-scene-protocol" diff --git a/packages/editor-whole/extensions/meta3d-export-scene/src/three/GLTFExporter.js b/packages/editor-whole/extensions/meta3d-export-scene/src/three/GLTFExporter.js index 8a65485b4..a66878568 100755 --- a/packages/editor-whole/extensions/meta3d-export-scene/src/three/GLTFExporter.js +++ b/packages/editor-whole/extensions/meta3d-export-scene/src/three/GLTFExporter.js @@ -317,9 +317,7 @@ const PATH_PROPERTIES = { }; -/*! edit by Meta3D -* -*/ +/*! edit by Meta3D */ // const DEFAULT_SPECULAR_COLOR = new Color(); var DEFAULT_SPECULAR_COLOR = null; @@ -2405,7 +2403,6 @@ class GLTFWriter { for (let i = 0; i < input.length; i++) { if (input[i] instanceof Scene) { - this.processScene(input[i]); } else { diff --git a/packages/editor-whole/extensions/meta3d-import-scene/package.json b/packages/editor-whole/extensions/meta3d-import-scene/package.json index 55e708843..fa0f46c68 100755 --- a/packages/editor-whole/extensions/meta3d-import-scene/package.json +++ b/packages/editor-whole/extensions/meta3d-import-scene/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-import-scene", - "version": "0.21.4", + "version": "0.21.5", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "displayName": "meta3d-import-scene", "protocol": { diff --git a/packages/editor-whole/extensions/meta3d-import-scene/src/Main.ts b/packages/editor-whole/extensions/meta3d-import-scene/src/Main.ts index 59fec8b04..2bb6d1ee7 100755 --- a/packages/editor-whole/extensions/meta3d-import-scene/src/Main.ts +++ b/packages/editor-whole/extensions/meta3d-import-scene/src/Main.ts @@ -4,7 +4,7 @@ import { state as meta3dState, getExtensionService as getExtensionServiceMeta3D, import { service as threeService } from "meta3d-three-protocol/src/service/ServiceType" import { dispose } from "meta3d-pipeline-utils/src/DisposeJobUtils" import { addDefaultGameObjects, addGameObjectsForSceneView } from "meta3d-pipeline-webgl1-three-utils/src/CreateDefaultSceneJobUtils" -// import { activeFirstBasicCameraView } from "meta3d-load-scene-utils/src/Main" +import { activeFirstBasicCameraView } from "meta3d-load-scene-utils/src/Main" import { service as assetService } from "meta3d-asset-protocol/src/service/ServiceType" import { service as engineSceneService } from "meta3d-engine-scene-protocol/src/service/ServiceType" import { event } from "meta3d-pipeline-dispose-protocol/src/EventType" @@ -58,6 +58,8 @@ export let getExtensionService: getExtensionServiceMeta3D = (api) => { // cameraView // ) + meta3dState = activeFirstBasicCameraView(meta3dState, engineSceneService) + let data = addGameObjectsForSceneView(meta3dState, engineSceneService) meta3dState = data[0] // let cameraController = data[1] diff --git a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/package.json b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/package.json index 36daadbe5..c77a096a2 100755 --- a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/package.json +++ b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-editor-whole-protocol", - "version": "0.21.5", + "version": "0.21.6", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "description": "", "author": "Wonder", diff --git a/packages/three/extensions/meta3d-scenegraph-converter-three/package.json b/packages/three/extensions/meta3d-scenegraph-converter-three/package.json index 02252eb7b..6440e9c94 100755 --- a/packages/three/extensions/meta3d-scenegraph-converter-three/package.json +++ b/packages/three/extensions/meta3d-scenegraph-converter-three/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-scenegraph-converter-three", - "version": "0.21.4", + "version": "0.21.5", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "displayName": "meta3d-scenegraph-converter-three", "protocol": { diff --git a/packages/three/protocols/extension_protocols/meta3d-scenegraph-converter-three-protocol/package.json b/packages/three/protocols/extension_protocols/meta3d-scenegraph-converter-three-protocol/package.json index 80424f696..961dd93da 100755 --- a/packages/three/protocols/extension_protocols/meta3d-scenegraph-converter-three-protocol/package.json +++ b/packages/three/protocols/extension_protocols/meta3d-scenegraph-converter-three-protocol/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-scenegraph-converter-three-protocol", - "version": "0.21.4", + "version": "0.21.5", "displayName": "converter protocol", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "author": "Meta3D", diff --git a/packages/three/protocols/extension_protocols/meta3d-scenegraph-converter-three-protocol/src/service/ServiceType.ts b/packages/three/protocols/extension_protocols/meta3d-scenegraph-converter-three-protocol/src/service/ServiceType.ts index 76db54a81..cd0354ab6 100755 --- a/packages/three/protocols/extension_protocols/meta3d-scenegraph-converter-three-protocol/src/service/ServiceType.ts +++ b/packages/three/protocols/extension_protocols/meta3d-scenegraph-converter-three-protocol/src/service/ServiceType.ts @@ -5,7 +5,8 @@ import { gameObject } from "meta3d-gameobject-protocol" export type getAllGameObjectsFunc = (meta3dState: meta3dState) => Array -export type addScene = (meta3dState: meta3dState, sceneGroup: Group) => [meta3dState, gameObject] +// export type addScene = (meta3dState: meta3dState, sceneGroup: Group) => [meta3dState, gameObject] +export type addScene = (meta3dState: meta3dState, sceneGroup: Group) => [meta3dState] export type service = { init: (meta3dState: meta3dState) => meta3dState, diff --git a/utils/meta3d-gameview-render-utils/src/GameViewRenderUtils.ts b/utils/meta3d-gameview-render-utils/src/GameViewRenderUtils.ts index da16f88ca..0cd859c05 100755 --- a/utils/meta3d-gameview-render-utils/src/GameViewRenderUtils.ts +++ b/utils/meta3d-gameview-render-utils/src/GameViewRenderUtils.ts @@ -1,11 +1,10 @@ import { api, state as meta3dState } from "meta3d-type" import { service as editorWholeService } from "meta3d-editor-whole-protocol/src/service/ServiceType" import { service as gameViewRenderService } from "meta3d-editor-gameview-render-protocol/src/service/ServiceType" -import { getExn, getWithDefault, map } from "meta3d-commonlib-ts/src/NullableUtils" -export let runGameViewRenderOnlyOnce = (meta3dState: meta3dState, { getPluggablePackageService }: editorWholeService): meta3dState => { - return getWithDefault( - map( +export let runGameViewRenderOnlyOnce = (meta3dState: meta3dState, api: api, { getPluggablePackageService }: editorWholeService): meta3dState => { + return api.nullable.getWithDefault( + api.nullable.map( ({ runOnlyOnce }) => { return runOnlyOnce(meta3dState) }, diff --git a/utils/meta3d-pipeline-webgl1-three-utils/src/CreateDefaultSceneJobUtils.ts b/utils/meta3d-pipeline-webgl1-three-utils/src/CreateDefaultSceneJobUtils.ts index 3c8ec3410..b9bf1b69f 100755 --- a/utils/meta3d-pipeline-webgl1-three-utils/src/CreateDefaultSceneJobUtils.ts +++ b/utils/meta3d-pipeline-webgl1-three-utils/src/CreateDefaultSceneJobUtils.ts @@ -30,7 +30,6 @@ let _createCameraGameObject = (meta3dState: meta3dState, scene: engineSceneServi meta3dState = scene.gameObject.addTransform(meta3dState, gameObject, transform) - data = scene.basicCameraView.createBasicCameraView(meta3dState) meta3dState = data[0] let cameraView = data[1] diff --git a/utils/meta3d-scenegraph-converter-three-utils/src/Classes.ts b/utils/meta3d-scenegraph-converter-three-utils/src/Classes.ts index b98af3f75..5a7ee3082 100755 --- a/utils/meta3d-scenegraph-converter-three-utils/src/Classes.ts +++ b/utils/meta3d-scenegraph-converter-three-utils/src/Classes.ts @@ -430,9 +430,11 @@ export class PerspectiveCamera extends Camera { public get name(): string { let meta3dState = getMeta3dState() - let { perspectiveCameraProjection } = getEngineSceneService(meta3dState) + let { gameObject, perspectiveCameraProjection } = getEngineSceneService(meta3dState) - return getWithDefault(perspectiveCameraProjection.getName(meta3dState, this.perspectiveCameraProjectionComponent), "") + return getWithDefault(perspectiveCameraProjection.getName(meta3dState, this.perspectiveCameraProjectionComponent), + getWithDefault(gameObject.getGameObjectName(meta3dState, this.gameObject), "") + ) } public get far(): number { @@ -532,9 +534,11 @@ export class DirectionLight extends Light { public get name(): string { let meta3dState = getMeta3dState() - let { directionLight } = getEngineSceneService(meta3dState) + let { gameObject, directionLight } = getEngineSceneService(meta3dState) - return getWithDefault(directionLight.getName(meta3dState, this._light), "") + return getWithDefault(directionLight.getName(meta3dState, this._light), + getWithDefault(gameObject.getGameObjectName(meta3dState, this.gameObject), "") + ) } public get castShadow(): boolean { diff --git a/utils/meta3d-scenegraph-converter-three-utils/src/Main.ts b/utils/meta3d-scenegraph-converter-three-utils/src/Main.ts index c399e6960..2c32e1082 100755 --- a/utils/meta3d-scenegraph-converter-three-utils/src/Main.ts +++ b/utils/meta3d-scenegraph-converter-three-utils/src/Main.ts @@ -603,9 +603,22 @@ export let getExtensionServiceUtils = ( setThreeObjects(api, meta3dState) - return _import(scene, meta3dState, - [standardMaterialMap, bufferGeometryMap, textureMap], - sceneGroup as Object3DType, null) + + + + // return _import(scene, meta3dState, + // [standardMaterialMap, bufferGeometryMap, textureMap], + // sceneGroup as Object3DType, null) + + let sceneObject = sceneGroup.children[0] + + return [sceneObject.children.reduce((meta3dState, child) => { + let data = _import(scene, meta3dState, + [standardMaterialMap, bufferGeometryMap, textureMap], + child, null + ) + return data[0] + }, meta3dState)] } } } diff --git a/utils/meta3d-scenetree-utils/src/SceneTreeUtils.ts b/utils/meta3d-scenetree-utils/src/SceneTreeUtils.ts index 334d47801..f5732ffdf 100755 --- a/utils/meta3d-scenetree-utils/src/SceneTreeUtils.ts +++ b/utils/meta3d-scenetree-utils/src/SceneTreeUtils.ts @@ -1,20 +1,19 @@ import { gameObject } from "meta3d-gameobject-protocol" import { state as meta3dState, api } from "meta3d-type" import { service } from "meta3d-editor-whole-protocol/src/service/ServiceType" -import { getExn, isNullable } from "meta3d-commonlib-ts/src/NullableUtils" import { treeIndexData } from "meta3d-imgui-renderer-protocol/src/service/ServiceType" export type hierachyGameObjects = Array<[gameObject, hierachyGameObjects]> -export let getAllTopGameObjects = (meta3dState: meta3dState, editorWholeService: service) => { +export let getAllTopGameObjects = (api: api, meta3dState: meta3dState, editorWholeService: service) => { let { gameObject, transform } = editorWholeService.scene(meta3dState) return gameObject.getAllGameObjects(meta3dState).filter(gameObject_ => { - return isNullable(transform.getParent(meta3dState, gameObject.getTransform(meta3dState, gameObject_))) + return api.nullable.isNullable(transform.getParent(meta3dState, gameObject.getTransform(meta3dState, gameObject_))) }) } -export let buildHierachyGameObjects = (result: hierachyGameObjects, +export let buildHierachyGameObjects = (api: api, result: hierachyGameObjects, editorWholeService: service, meta3dState: meta3dState, parentGameObjects: Array): hierachyGameObjects => { let { gameObject, transform } = editorWholeService.scene(meta3dState) @@ -22,11 +21,11 @@ export let buildHierachyGameObjects = (result: hierachyGameObjects, return parentGameObjects.reduce((result, parentGameObject) => { let children = transform.getChildren(meta3dState, gameObject.getTransform(meta3dState, parentGameObject)) - if (isNullable(children) || getExn(children).length == 0) { + if (api.nullable.isNullable(children) || api.nullable.getExn(children).length == 0) { result.push([parentGameObject, []]) } else { - result.push([parentGameObject, buildHierachyGameObjects([], editorWholeService, meta3dState, getExn(children).map(child => { + result.push([parentGameObject, buildHierachyGameObjects(api, [], editorWholeService, meta3dState, api.nullable.getExn(children).map(child => { return transform.getGameObjects(meta3dState, child)[0] }) )]) @@ -37,14 +36,14 @@ export let buildHierachyGameObjects = (result: hierachyGameObjects, } -export let findSelectedGameObject = (hierachyGameObjects: hierachyGameObjects, treeIndexData: treeIndexData): gameObject => { +export let findSelectedGameObject = (api: api, hierachyGameObjects: hierachyGameObjects, treeIndexData: treeIndexData): gameObject => { let _func = (hierachyGameObjects: hierachyGameObjects, index: number, treeIndexData: treeIndexData): gameObject => { if (treeIndexData.length == 0) { return hierachyGameObjects[index][0] } - return _func(hierachyGameObjects[index][1], getExn(treeIndexData[0]), treeIndexData.slice(1)) + return _func(hierachyGameObjects[index][1], api.nullable.getExn(treeIndexData[0]), treeIndexData.slice(1)) } - return _func(hierachyGameObjects, getExn(treeIndexData[0]), treeIndexData.slice(1)) + return _func(hierachyGameObjects, api.nullable.getExn(treeIndexData[0]), treeIndexData.slice(1)) } \ No newline at end of file