diff --git a/contributes/meta3d-action-clone-gameobject/package.json b/contributes/meta3d-action-clone-gameobject/package.json index c8b788f19..f928e20da 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.20.1", + "version": "0.20.2", "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 303179b26..34c8f2f53 100755 --- a/contributes/meta3d-action-clone-gameobject/src/Main.ts +++ b/contributes/meta3d-action-clone-gameobject/src/Main.ts @@ -65,7 +65,6 @@ export let getContribute: getContributeMeta3D> = meta3dState = engineSceneService.gameObject.disposeGameObjects(meta3dState, clonedGameObjects) let state = api.nullable.getExn(api.action.getActionState(meta3dState, actionName)) - meta3dState = api.action.setActionState(meta3dState, actionName, { ...state, allClonedGameObjects: state.allClonedGameObjects.pop(), diff --git a/contributes/meta3d-action-publish/package.json b/contributes/meta3d-action-publish/package.json index cdf77fba5..4fe9928e5 100755 --- a/contributes/meta3d-action-publish/package.json +++ b/contributes/meta3d-action-publish/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-action-publish", - "version": "0.20.13", + "version": "0.20.14", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "protocol": { "name": "meta3d-action-publish-protocol" diff --git a/contributes/meta3d-action-publish/src/Main.ts b/contributes/meta3d-action-publish/src/Main.ts index fc3816f0a..37557c3e7 100755 --- a/contributes/meta3d-action-publish/src/Main.ts +++ b/contributes/meta3d-action-publish/src/Main.ts @@ -33,7 +33,7 @@ export let getContribute: getContributeMeta3D { resolve(eventSourcingService.on(meta3dState, eventName, 0, (meta3dState) => { - if (api.action.getActionState(meta3dState, runActionName).isRun) { + if (api.nullable.getWithDefault(api.nullable.map(runState => runState.isRun, api.action.getActionState(meta3dState, runActionName)), false)) { console.warn("can't publish when run") return (new Promise((resolve) => { diff --git a/contributes/meta3d-action-set-gameobjectname/.gitignore b/contributes/meta3d-action-set-gameobjectname/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/contributes/meta3d-action-set-gameobjectname/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/contributes/meta3d-action-set-gameobjectname/gulpfile.js b/contributes/meta3d-action-set-gameobjectname/gulpfile.js new file mode 100755 index 000000000..a4c8812fc --- /dev/null +++ b/contributes/meta3d-action-set-gameobjectname/gulpfile.js @@ -0,0 +1,25 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish") + +gulp.task("publish_local_env", function (done) { + publish.publishContribute( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContribute( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + + diff --git a/contributes/meta3d-action-set-gameobjectname/package.json b/contributes/meta3d-action-set-gameobjectname/package.json new file mode 100755 index 000000000..104764974 --- /dev/null +++ b/contributes/meta3d-action-set-gameobjectname/package.json @@ -0,0 +1,36 @@ +{ + "name": "meta3d-action-set-gameobjectname", + "version": "0.20.1", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "repoLink": "", + "protocol": { + "name": "meta3d-action-set-gameobjectname-protocol" + }, + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "webpack": "webpack --config webpack.config.js", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publish_local_env", + "meta3d:publish_pro": "cross-env NODE_ENV=production npm run webpack && gulp publish_production_env" + }, + "keywords": [], + "dependencies": { + "meta3d-action-select-scenetree-node-protocol": "^0.20.0", + "meta3d-action-set-gameobjectname-protocol": "^0.20.0", + "meta3d-editor-whole-protocol": "^0.20.0", + "meta3d-type": "^0.20.0" + }, + "devDependencies": { + "clean-webpack-plugin": "^4.0.0", + "cross-env": "^7.0.3", + "cz-customizable": "^6.3.0", + "gulp": "^4.0.2", + "meta3d-tool-publish": "^0.20.0", + "source-map-loader": "^3.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.2.3", + "webpack": "^5.62.1", + "webpack-cli": "^4.9.1" + } +} diff --git a/contributes/meta3d-action-set-gameobjectname/src/Main.ts b/contributes/meta3d-action-set-gameobjectname/src/Main.ts new file mode 100755 index 000000000..340e01215 --- /dev/null +++ b/contributes/meta3d-action-set-gameobjectname/src/Main.ts @@ -0,0 +1,101 @@ +import { state as meta3dState, api, getContribute as getContributeMeta3D } from "meta3d-type" +import { actionContribute, service as editorWholeService } from "meta3d-editor-whole-protocol/src/service/ServiceType" +import { actionName, state, uiData } from "meta3d-action-set-gameobjectname-protocol" +import { eventName, inputData } from "meta3d-action-set-gameobjectname-protocol/src/EventType" +import { actionName as selectSceneTreeNodeActionName, state as selectSceneTreeNodeState } from "meta3d-action-select-scenetree-node-protocol" +import { service as gameViewRenderService } from "meta3d-editor-gameview-render-protocol/src/service/ServiceType" + +export let getContribute: getContributeMeta3D> = (api) => { + return { + actionName: actionName, + init: (meta3dState) => { + let eventSourcingService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).event(meta3dState).eventSourcing(meta3dState) + + return new Promise((resolve, reject) => { + resolve(eventSourcingService.on(meta3dState, eventName, 0, (meta3dState, gameObject, name) => { + let editorWholeService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")) + let engineSceneService = editorWholeService.scene(meta3dState) + + let oldName = engineSceneService.gameObject.getGameObjectName(meta3dState, + gameObject + ) + + meta3dState = engineSceneService.gameObject.setGameObjectName(meta3dState, + gameObject, + name + ) + + + let state = api.nullable.getExn(api.action.getActionState(meta3dState, actionName)) + meta3dState = api.action.setActionState(meta3dState, actionName, { + ...state, + allGameObjectNameData: state.allGameObjectNameData.push([gameObject, oldName]), + }) + + return Promise.resolve(api.nullable.getWithDefault( + api.nullable.map( + ({ runOnlyOnce }) => { + return runOnlyOnce(meta3dState) + }, + editorWholeService.getPluggablePackageService(meta3dState, "meta3d-editor-gameview-render-protocol") + ), + meta3dState + )) + }, (meta3dState) => { + let { + allGameObjectNameData + } = api.nullable.getExn(api.action.getActionState(meta3dState, actionName)) + + if (api.nullable.isNullable(allGameObjectNameData.last())) { + return Promise.resolve(meta3dState) + } + + let [gameObject, name] = api.nullable.getExn(allGameObjectNameData.last()) + + let engineSceneService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")) + .scene(meta3dState) + + meta3dState = api.nullable.getWithDefault(api.nullable.map((name) => { + return engineSceneService.gameObject.setGameObjectName(meta3dState, gameObject, name) + }, name), meta3dState) + + let state = api.nullable.getExn(api.action.getActionState(meta3dState, actionName)) + meta3dState = api.action.setActionState(meta3dState, actionName, { + ...state, + allGameObjectNameData: state.allGameObjectNameData.pop(), + }) + + return Promise.resolve(meta3dState) + })) + }) + }, + handler: (meta3dState, uiData) => { + return new Promise((resolve, reject) => { + let { + selectedGameObject, + } = api.nullable.getExn(api.action.getActionState(meta3dState, selectSceneTreeNodeActionName)) + + if (api.nullable.isNullable(selectedGameObject)) { + resolve(meta3dState) + + return + } + + let eventSourcingService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).event(meta3dState).eventSourcing(meta3dState) + + resolve(eventSourcingService.addEvent(meta3dState, { + name: eventName, + inputData: [ + api.nullable.getExn(selectedGameObject), + uiData + ] + })) + }) + }, + createState: (meta3dState) => { + return { + allGameObjectNameData: api.immutable.createList(meta3dState) + } + } + } +} diff --git a/contributes/meta3d-action-set-gameobjectname/tsconfig.json b/contributes/meta3d-action-set-gameobjectname/tsconfig.json new file mode 100755 index 000000000..a8418c65b --- /dev/null +++ b/contributes/meta3d-action-set-gameobjectname/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + // "noUnusedLocals": true, + // "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/contributes/meta3d-action-set-gameobjectname/webpack.config.js b/contributes/meta3d-action-set-gameobjectname/webpack.config.js new file mode 100755 index 000000000..1de4da2d5 --- /dev/null +++ b/contributes/meta3d-action-set-gameobjectname/webpack.config.js @@ -0,0 +1,64 @@ +const path = require('path'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); + +module.exports = { + entry: "./src/Main.ts", + mode: process.env.NODE_ENV.trim() == 'production' ? 'production' : 'development', + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'static/js/[name].js', + library: { + name: 'Contribute', + type: 'window', + }, + }, + + // Enable sourcemaps for debugging webpack's output. + // devtool: "source-map", + + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'], + modules: ['node_modules'] + }, + + module: { + rules: [ + // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. + { + test: /\.tsx?$/, + exclude: /node_modules/, + use: "ts-loader" + }, + // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. + { + enforce: 'pre', + test: /\.js$/, + loader: "source-map-loader" + }, + ] + }, + plugins: [ + /** + * All files inside webpack's output.path directory will be removed once, but the + * directory itself will not be. If using webpack 4+'s default configuration, + * everything under /dist/ will be removed. + * Use cleanOnceBeforeBuildPatterns to override this behavior. + * + * During rebuilds, all webpack assets that are not used anymore + * will be removed automatically. + * + * See `Options and Defaults` for information + */ + new CleanWebpackPlugin(), + // new HtmlWebpackPlugin({ + // template: './user.html', + // filename: 'user.html', + // }), + ], + // When importing a module whose path matches one of the following, just + // assume a corresponding global variable exists and use that instead. + // This is important because it allows us to avoid bundling all of our + // dependencies, which allows browsers to cache those libraries between builds. + externals: { + } +}; \ No newline at end of file diff --git a/contributes/meta3d-action-set-localeulerangle/.gitignore b/contributes/meta3d-action-set-localeulerangle/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/contributes/meta3d-action-set-localeulerangle/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/contributes/meta3d-action-set-localeulerangle/gulpfile.js b/contributes/meta3d-action-set-localeulerangle/gulpfile.js new file mode 100755 index 000000000..a4c8812fc --- /dev/null +++ b/contributes/meta3d-action-set-localeulerangle/gulpfile.js @@ -0,0 +1,25 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish") + +gulp.task("publish_local_env", function (done) { + publish.publishContribute( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContribute( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + + diff --git a/contributes/meta3d-action-set-localeulerangle/package.json b/contributes/meta3d-action-set-localeulerangle/package.json new file mode 100755 index 000000000..955c5b5e9 --- /dev/null +++ b/contributes/meta3d-action-set-localeulerangle/package.json @@ -0,0 +1,36 @@ +{ + "name": "meta3d-action-set-localeulerangle", + "version": "0.20.1", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "repoLink": "", + "protocol": { + "name": "meta3d-action-set-localeulerangle-protocol" + }, + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "webpack": "webpack --config webpack.config.js", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publish_local_env", + "meta3d:publish_pro": "cross-env NODE_ENV=production npm run webpack && gulp publish_production_env" + }, + "keywords": [], + "dependencies": { + "meta3d-action-select-scenetree-node-protocol": "^0.20.0", + "meta3d-action-set-localeulerangle-protocol": "^0.20.0", + "meta3d-editor-whole-protocol": "^0.20.0", + "meta3d-type": "^0.20.0" + }, + "devDependencies": { + "clean-webpack-plugin": "^4.0.0", + "cross-env": "^7.0.3", + "cz-customizable": "^6.3.0", + "gulp": "^4.0.2", + "meta3d-tool-publish": "^0.20.0", + "source-map-loader": "^3.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.2.3", + "webpack": "^5.62.1", + "webpack-cli": "^4.9.1" + } +} diff --git a/contributes/meta3d-action-set-localeulerangle/src/Main.ts b/contributes/meta3d-action-set-localeulerangle/src/Main.ts new file mode 100755 index 000000000..09b482197 --- /dev/null +++ b/contributes/meta3d-action-set-localeulerangle/src/Main.ts @@ -0,0 +1,108 @@ +import { state as meta3dState, api, getContribute as getContributeMeta3D } from "meta3d-type" +import { actionContribute, service as editorWholeService } from "meta3d-editor-whole-protocol/src/service/ServiceType" +import { actionName, state, uiData } from "meta3d-action-set-localeulerangle-protocol" +import { eventName, inputData } from "meta3d-action-set-localeulerangle-protocol/src/EventType" +import { actionName as selectSceneTreeNodeActionName, state as selectSceneTreeNodeState } from "meta3d-action-select-scenetree-node-protocol" +import { service as gameViewRenderService } from "meta3d-editor-gameview-render-protocol/src/service/ServiceType" + +export let getContribute: getContributeMeta3D> = (api) => { + return { + actionName: actionName, + init: (meta3dState) => { + let eventSourcingService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).event(meta3dState).eventSourcing(meta3dState) + + return new Promise((resolve, reject) => { + resolve(eventSourcingService.on(meta3dState, eventName, 0, (meta3dState, gameObject, localEulerAngle) => { + let editorWholeService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")) + let engineSceneService = editorWholeService.scene(meta3dState) + + let oldLocalEulerAngle = engineSceneService.transform.getLocalEulerAngles(meta3dState, + engineSceneService.gameObject.getTransform(meta3dState, + gameObject + ) + ) + + meta3dState = engineSceneService.transform.setLocalEulerAngles(meta3dState, + engineSceneService.gameObject.getTransform(meta3dState, + gameObject + ), + localEulerAngle + ) + + + let state = api.nullable.getExn(api.action.getActionState(meta3dState, actionName)) + meta3dState = api.action.setActionState(meta3dState, actionName, { + ...state, + allLocalEulerAngleData: state.allLocalEulerAngleData.push([gameObject, oldLocalEulerAngle]), + }) + + return Promise.resolve(api.nullable.getWithDefault( + api.nullable.map( + ({ runOnlyOnce }) => { + return runOnlyOnce(meta3dState) + }, + editorWholeService.getPluggablePackageService(meta3dState, "meta3d-editor-gameview-render-protocol") + ), + meta3dState + )) + }, (meta3dState) => { + let { + allLocalEulerAngleData + } = api.nullable.getExn(api.action.getActionState(meta3dState, actionName)) + + if (api.nullable.isNullable(allLocalEulerAngleData.last())) { + return Promise.resolve(meta3dState) + } + + let [gameObject, localEulerAngle] = api.nullable.getExn(allLocalEulerAngleData.last()) + + let engineSceneService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")) + .scene(meta3dState) + + meta3dState = engineSceneService.transform.setLocalEulerAngles(meta3dState, + engineSceneService.gameObject.getTransform(meta3dState, + gameObject + ), + localEulerAngle + ) + + let state = api.nullable.getExn(api.action.getActionState(meta3dState, actionName)) + meta3dState = api.action.setActionState(meta3dState, actionName, { + ...state, + allLocalEulerAngleData: state.allLocalEulerAngleData.pop(), + }) + + return Promise.resolve(meta3dState) + })) + }) + }, + handler: (meta3dState, uiData) => { + return new Promise((resolve, reject) => { + let { + selectedGameObject, + } = api.nullable.getExn(api.action.getActionState(meta3dState, selectSceneTreeNodeActionName)) + + if (api.nullable.isNullable(selectedGameObject)) { + resolve(meta3dState) + + return + } + + let eventSourcingService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).event(meta3dState).eventSourcing(meta3dState) + + resolve(eventSourcingService.addEvent(meta3dState, { + name: eventName, + inputData: [ + api.nullable.getExn(selectedGameObject), + uiData + ] + })) + }) + }, + createState: (meta3dState) => { + return { + allLocalEulerAngleData: api.immutable.createList(meta3dState) + } + } + } +} diff --git a/contributes/meta3d-action-set-localeulerangle/tsconfig.json b/contributes/meta3d-action-set-localeulerangle/tsconfig.json new file mode 100755 index 000000000..a8418c65b --- /dev/null +++ b/contributes/meta3d-action-set-localeulerangle/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + // "noUnusedLocals": true, + // "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/contributes/meta3d-action-set-localeulerangle/webpack.config.js b/contributes/meta3d-action-set-localeulerangle/webpack.config.js new file mode 100755 index 000000000..1de4da2d5 --- /dev/null +++ b/contributes/meta3d-action-set-localeulerangle/webpack.config.js @@ -0,0 +1,64 @@ +const path = require('path'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); + +module.exports = { + entry: "./src/Main.ts", + mode: process.env.NODE_ENV.trim() == 'production' ? 'production' : 'development', + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'static/js/[name].js', + library: { + name: 'Contribute', + type: 'window', + }, + }, + + // Enable sourcemaps for debugging webpack's output. + // devtool: "source-map", + + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'], + modules: ['node_modules'] + }, + + module: { + rules: [ + // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. + { + test: /\.tsx?$/, + exclude: /node_modules/, + use: "ts-loader" + }, + // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. + { + enforce: 'pre', + test: /\.js$/, + loader: "source-map-loader" + }, + ] + }, + plugins: [ + /** + * All files inside webpack's output.path directory will be removed once, but the + * directory itself will not be. If using webpack 4+'s default configuration, + * everything under /dist/ will be removed. + * Use cleanOnceBeforeBuildPatterns to override this behavior. + * + * During rebuilds, all webpack assets that are not used anymore + * will be removed automatically. + * + * See `Options and Defaults` for information + */ + new CleanWebpackPlugin(), + // new HtmlWebpackPlugin({ + // template: './user.html', + // filename: 'user.html', + // }), + ], + // When importing a module whose path matches one of the following, just + // assume a corresponding global variable exists and use that instead. + // This is important because it allows us to avoid bundling all of our + // dependencies, which allows browsers to cache those libraries between builds. + externals: { + } +}; \ No newline at end of file diff --git a/contributes/meta3d-action-set-localposition/.gitignore b/contributes/meta3d-action-set-localposition/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/contributes/meta3d-action-set-localposition/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/contributes/meta3d-action-set-localposition/gulpfile.js b/contributes/meta3d-action-set-localposition/gulpfile.js new file mode 100755 index 000000000..a4c8812fc --- /dev/null +++ b/contributes/meta3d-action-set-localposition/gulpfile.js @@ -0,0 +1,25 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish") + +gulp.task("publish_local_env", function (done) { + publish.publishContribute( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContribute( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + + diff --git a/contributes/meta3d-action-set-localposition/package.json b/contributes/meta3d-action-set-localposition/package.json new file mode 100755 index 000000000..b34481c63 --- /dev/null +++ b/contributes/meta3d-action-set-localposition/package.json @@ -0,0 +1,36 @@ +{ + "name": "meta3d-action-set-localposition", + "version": "0.20.1", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "repoLink": "", + "protocol": { + "name": "meta3d-action-set-localposition-protocol" + }, + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "webpack": "webpack --config webpack.config.js", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publish_local_env", + "meta3d:publish_pro": "cross-env NODE_ENV=production npm run webpack && gulp publish_production_env" + }, + "keywords": [], + "dependencies": { + "meta3d-action-select-scenetree-node-protocol": "^0.20.0", + "meta3d-action-set-localposition-protocol": "^0.20.0", + "meta3d-editor-whole-protocol": "^0.20.0", + "meta3d-type": "^0.20.0" + }, + "devDependencies": { + "clean-webpack-plugin": "^4.0.0", + "cross-env": "^7.0.3", + "cz-customizable": "^6.3.0", + "gulp": "^4.0.2", + "meta3d-tool-publish": "^0.20.0", + "source-map-loader": "^3.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.2.3", + "webpack": "^5.62.1", + "webpack-cli": "^4.9.1" + } +} diff --git a/contributes/meta3d-action-set-localposition/src/Main.ts b/contributes/meta3d-action-set-localposition/src/Main.ts new file mode 100755 index 000000000..3998d7168 --- /dev/null +++ b/contributes/meta3d-action-set-localposition/src/Main.ts @@ -0,0 +1,108 @@ +import { state as meta3dState, api, getContribute as getContributeMeta3D } from "meta3d-type" +import { actionContribute, service as editorWholeService } from "meta3d-editor-whole-protocol/src/service/ServiceType" +import { actionName, state, uiData } from "meta3d-action-set-localposition-protocol" +import { eventName, inputData } from "meta3d-action-set-localposition-protocol/src/EventType" +import { actionName as selectSceneTreeNodeActionName, state as selectSceneTreeNodeState } from "meta3d-action-select-scenetree-node-protocol" +import { service as gameViewRenderService } from "meta3d-editor-gameview-render-protocol/src/service/ServiceType" + +export let getContribute: getContributeMeta3D> = (api) => { + return { + actionName: actionName, + init: (meta3dState) => { + let eventSourcingService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).event(meta3dState).eventSourcing(meta3dState) + + return new Promise((resolve, reject) => { + resolve(eventSourcingService.on(meta3dState, eventName, 0, (meta3dState, gameObject, localPosition) => { + let editorWholeService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")) + let engineSceneService = editorWholeService.scene(meta3dState) + + let oldLocalPosition = engineSceneService.transform.getLocalPosition(meta3dState, + engineSceneService.gameObject.getTransform(meta3dState, + gameObject + ) + ) + + meta3dState = engineSceneService.transform.setLocalPosition(meta3dState, + engineSceneService.gameObject.getTransform(meta3dState, + gameObject + ), + localPosition + ) + + + let state = api.nullable.getExn(api.action.getActionState(meta3dState, actionName)) + meta3dState = api.action.setActionState(meta3dState, actionName, { + ...state, + allLocalPositionData: state.allLocalPositionData.push([gameObject, oldLocalPosition]), + }) + + return Promise.resolve(api.nullable.getWithDefault( + api.nullable.map( + ({ runOnlyOnce }) => { + return runOnlyOnce(meta3dState) + }, + editorWholeService.getPluggablePackageService(meta3dState, "meta3d-editor-gameview-render-protocol") + ), + meta3dState + )) + }, (meta3dState) => { + let { + allLocalPositionData + } = api.nullable.getExn(api.action.getActionState(meta3dState, actionName)) + + if (api.nullable.isNullable(allLocalPositionData.last())) { + return Promise.resolve(meta3dState) + } + + let [gameObject, localPosition] = api.nullable.getExn(allLocalPositionData.last()) + + let engineSceneService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")) + .scene(meta3dState) + + meta3dState = engineSceneService.transform.setLocalPosition(meta3dState, + engineSceneService.gameObject.getTransform(meta3dState, + gameObject + ), + localPosition + ) + + let state = api.nullable.getExn(api.action.getActionState(meta3dState, actionName)) + meta3dState = api.action.setActionState(meta3dState, actionName, { + ...state, + allLocalPositionData: state.allLocalPositionData.pop(), + }) + + return Promise.resolve(meta3dState) + })) + }) + }, + handler: (meta3dState, uiData) => { + return new Promise((resolve, reject) => { + let { + selectedGameObject, + } = api.nullable.getExn(api.action.getActionState(meta3dState, selectSceneTreeNodeActionName)) + + if (api.nullable.isNullable(selectedGameObject)) { + resolve(meta3dState) + + return + } + + let eventSourcingService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).event(meta3dState).eventSourcing(meta3dState) + + resolve(eventSourcingService.addEvent(meta3dState, { + name: eventName, + inputData: [ + api.nullable.getExn(selectedGameObject), + uiData + ] + })) + }) + }, + createState: (meta3dState) => { + return { + allLocalPositionData: api.immutable.createList(meta3dState) + } + } + } +} diff --git a/contributes/meta3d-action-set-localposition/tsconfig.json b/contributes/meta3d-action-set-localposition/tsconfig.json new file mode 100755 index 000000000..a8418c65b --- /dev/null +++ b/contributes/meta3d-action-set-localposition/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + // "noUnusedLocals": true, + // "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/contributes/meta3d-action-set-localposition/webpack.config.js b/contributes/meta3d-action-set-localposition/webpack.config.js new file mode 100755 index 000000000..1de4da2d5 --- /dev/null +++ b/contributes/meta3d-action-set-localposition/webpack.config.js @@ -0,0 +1,64 @@ +const path = require('path'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); + +module.exports = { + entry: "./src/Main.ts", + mode: process.env.NODE_ENV.trim() == 'production' ? 'production' : 'development', + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'static/js/[name].js', + library: { + name: 'Contribute', + type: 'window', + }, + }, + + // Enable sourcemaps for debugging webpack's output. + // devtool: "source-map", + + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'], + modules: ['node_modules'] + }, + + module: { + rules: [ + // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. + { + test: /\.tsx?$/, + exclude: /node_modules/, + use: "ts-loader" + }, + // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. + { + enforce: 'pre', + test: /\.js$/, + loader: "source-map-loader" + }, + ] + }, + plugins: [ + /** + * All files inside webpack's output.path directory will be removed once, but the + * directory itself will not be. If using webpack 4+'s default configuration, + * everything under /dist/ will be removed. + * Use cleanOnceBeforeBuildPatterns to override this behavior. + * + * During rebuilds, all webpack assets that are not used anymore + * will be removed automatically. + * + * See `Options and Defaults` for information + */ + new CleanWebpackPlugin(), + // new HtmlWebpackPlugin({ + // template: './user.html', + // filename: 'user.html', + // }), + ], + // When importing a module whose path matches one of the following, just + // assume a corresponding global variable exists and use that instead. + // This is important because it allows us to avoid bundling all of our + // dependencies, which allows browsers to cache those libraries between builds. + externals: { + } +}; \ No newline at end of file diff --git a/contributes/meta3d-action-set-localscale/.gitignore b/contributes/meta3d-action-set-localscale/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/contributes/meta3d-action-set-localscale/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/contributes/meta3d-action-set-localscale/gulpfile.js b/contributes/meta3d-action-set-localscale/gulpfile.js new file mode 100755 index 000000000..a4c8812fc --- /dev/null +++ b/contributes/meta3d-action-set-localscale/gulpfile.js @@ -0,0 +1,25 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish") + +gulp.task("publish_local_env", function (done) { + publish.publishContribute( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContribute( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + + diff --git a/contributes/meta3d-action-set-localscale/package.json b/contributes/meta3d-action-set-localscale/package.json new file mode 100755 index 000000000..ef91759c0 --- /dev/null +++ b/contributes/meta3d-action-set-localscale/package.json @@ -0,0 +1,36 @@ +{ + "name": "meta3d-action-set-localscale", + "version": "0.20.1", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "repoLink": "", + "protocol": { + "name": "meta3d-action-set-localscale-protocol" + }, + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "webpack": "webpack --config webpack.config.js", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publish_local_env", + "meta3d:publish_pro": "cross-env NODE_ENV=production npm run webpack && gulp publish_production_env" + }, + "keywords": [], + "dependencies": { + "meta3d-action-select-scenetree-node-protocol": "^0.20.0", + "meta3d-action-set-localscale-protocol": "^0.20.0", + "meta3d-editor-whole-protocol": "^0.20.0", + "meta3d-type": "^0.20.0" + }, + "devDependencies": { + "clean-webpack-plugin": "^4.0.0", + "cross-env": "^7.0.3", + "cz-customizable": "^6.3.0", + "gulp": "^4.0.2", + "meta3d-tool-publish": "^0.20.0", + "source-map-loader": "^3.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.2.3", + "webpack": "^5.62.1", + "webpack-cli": "^4.9.1" + } +} diff --git a/contributes/meta3d-action-set-localscale/src/Main.ts b/contributes/meta3d-action-set-localscale/src/Main.ts new file mode 100755 index 000000000..dcad0fc12 --- /dev/null +++ b/contributes/meta3d-action-set-localscale/src/Main.ts @@ -0,0 +1,108 @@ +import { state as meta3dState, api, getContribute as getContributeMeta3D } from "meta3d-type" +import { actionContribute, service as editorWholeService } from "meta3d-editor-whole-protocol/src/service/ServiceType" +import { actionName, state, uiData } from "meta3d-action-set-localscale-protocol" +import { eventName, inputData } from "meta3d-action-set-localscale-protocol/src/EventType" +import { actionName as selectSceneTreeNodeActionName, state as selectSceneTreeNodeState } from "meta3d-action-select-scenetree-node-protocol" +import { service as gameViewRenderService } from "meta3d-editor-gameview-render-protocol/src/service/ServiceType" + +export let getContribute: getContributeMeta3D> = (api) => { + return { + actionName: actionName, + init: (meta3dState) => { + let eventSourcingService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).event(meta3dState).eventSourcing(meta3dState) + + return new Promise((resolve, reject) => { + resolve(eventSourcingService.on(meta3dState, eventName, 0, (meta3dState, gameObject, localScale) => { + let editorWholeService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")) + let engineSceneService = editorWholeService.scene(meta3dState) + + let oldLocalScale = engineSceneService.transform.getLocalScale(meta3dState, + engineSceneService.gameObject.getTransform(meta3dState, + gameObject + ) + ) + + meta3dState = engineSceneService.transform.setLocalScale(meta3dState, + engineSceneService.gameObject.getTransform(meta3dState, + gameObject + ), + localScale + ) + + + let state = api.nullable.getExn(api.action.getActionState(meta3dState, actionName)) + meta3dState = api.action.setActionState(meta3dState, actionName, { + ...state, + allLocalScaleData: state.allLocalScaleData.push([gameObject, oldLocalScale]), + }) + + return Promise.resolve(api.nullable.getWithDefault( + api.nullable.map( + ({ runOnlyOnce }) => { + return runOnlyOnce(meta3dState) + }, + editorWholeService.getPluggablePackageService(meta3dState, "meta3d-editor-gameview-render-protocol") + ), + meta3dState + )) + }, (meta3dState) => { + let { + allLocalScaleData + } = api.nullable.getExn(api.action.getActionState(meta3dState, actionName)) + + if (api.nullable.isNullable(allLocalScaleData.last())) { + return Promise.resolve(meta3dState) + } + + let [gameObject, localScale] = api.nullable.getExn(allLocalScaleData.last()) + + let engineSceneService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")) + .scene(meta3dState) + + meta3dState = engineSceneService.transform.setLocalScale(meta3dState, + engineSceneService.gameObject.getTransform(meta3dState, + gameObject + ), + localScale + ) + + let state = api.nullable.getExn(api.action.getActionState(meta3dState, actionName)) + meta3dState = api.action.setActionState(meta3dState, actionName, { + ...state, + allLocalScaleData: state.allLocalScaleData.pop(), + }) + + return Promise.resolve(meta3dState) + })) + }) + }, + handler: (meta3dState, uiData) => { + return new Promise((resolve, reject) => { + let { + selectedGameObject, + } = api.nullable.getExn(api.action.getActionState(meta3dState, selectSceneTreeNodeActionName)) + + if (api.nullable.isNullable(selectedGameObject)) { + resolve(meta3dState) + + return + } + + let eventSourcingService = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).event(meta3dState).eventSourcing(meta3dState) + + resolve(eventSourcingService.addEvent(meta3dState, { + name: eventName, + inputData: [ + api.nullable.getExn(selectedGameObject), + uiData + ] + })) + }) + }, + createState: (meta3dState) => { + return { + allLocalScaleData: api.immutable.createList(meta3dState) + } + } + } +} diff --git a/contributes/meta3d-action-set-localscale/tsconfig.json b/contributes/meta3d-action-set-localscale/tsconfig.json new file mode 100755 index 000000000..a8418c65b --- /dev/null +++ b/contributes/meta3d-action-set-localscale/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + // "noUnusedLocals": true, + // "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/contributes/meta3d-action-set-localscale/webpack.config.js b/contributes/meta3d-action-set-localscale/webpack.config.js new file mode 100755 index 000000000..1de4da2d5 --- /dev/null +++ b/contributes/meta3d-action-set-localscale/webpack.config.js @@ -0,0 +1,64 @@ +const path = require('path'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); + +module.exports = { + entry: "./src/Main.ts", + mode: process.env.NODE_ENV.trim() == 'production' ? 'production' : 'development', + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'static/js/[name].js', + library: { + name: 'Contribute', + type: 'window', + }, + }, + + // Enable sourcemaps for debugging webpack's output. + // devtool: "source-map", + + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'], + modules: ['node_modules'] + }, + + module: { + rules: [ + // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. + { + test: /\.tsx?$/, + exclude: /node_modules/, + use: "ts-loader" + }, + // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. + { + enforce: 'pre', + test: /\.js$/, + loader: "source-map-loader" + }, + ] + }, + plugins: [ + /** + * All files inside webpack's output.path directory will be removed once, but the + * directory itself will not be. If using webpack 4+'s default configuration, + * everything under /dist/ will be removed. + * Use cleanOnceBeforeBuildPatterns to override this behavior. + * + * During rebuilds, all webpack assets that are not used anymore + * will be removed automatically. + * + * See `Options and Defaults` for information + */ + new CleanWebpackPlugin(), + // new HtmlWebpackPlugin({ + // template: './user.html', + // filename: 'user.html', + // }), + ], + // When importing a module whose path matches one of the following, just + // assume a corresponding global variable exists and use that instead. + // This is important because it allows us to avoid bundling all of our + // dependencies, which allows browsers to cache those libraries between builds. + externals: { + } +}; \ No newline at end of file diff --git a/contributes/meta3d-input-gameobjectname/.gitignore b/contributes/meta3d-input-gameobjectname/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/contributes/meta3d-input-gameobjectname/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/contributes/meta3d-input-gameobjectname/gulpfile.js b/contributes/meta3d-input-gameobjectname/gulpfile.js new file mode 100755 index 000000000..a4c8812fc --- /dev/null +++ b/contributes/meta3d-input-gameobjectname/gulpfile.js @@ -0,0 +1,25 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish") + +gulp.task("publish_local_env", function (done) { + publish.publishContribute( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContribute( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + + diff --git a/contributes/meta3d-input-gameobjectname/package.json b/contributes/meta3d-input-gameobjectname/package.json new file mode 100755 index 000000000..578a93766 --- /dev/null +++ b/contributes/meta3d-input-gameobjectname/package.json @@ -0,0 +1,36 @@ +{ + "name": "meta3d-input-gameobjectname", + "version": "0.20.2", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "description": "", + "protocol": { + "name": "meta3d-input-input-text-protocol" + }, + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "webpack": "webpack --config webpack.config.js", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publish_local_env", + "meta3d:publish_pro": "cross-env NODE_ENV=production npm run webpack && gulp publish_production_env" + }, + "keywords": [], + "dependencies": { + "meta3d-action-select-scenetree-node-protocol": "^0.20.0", + "meta3d-editor-whole-protocol": "^0.20.0", + "meta3d-input-input-text-protocol": "^0.20.0", + "meta3d-type": "^0.20.0" + }, + "devDependencies": { + "clean-webpack-plugin": "^4.0.0", + "cross-env": "^7.0.3", + "cz-customizable": "^6.3.0", + "gulp": "^4.0.2", + "meta3d-tool-publish": "^0.20.0", + "source-map-loader": "^3.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.2.3", + "webpack": "^5.62.1", + "webpack-cli": "^4.9.1" + } +} diff --git a/contributes/meta3d-input-gameobjectname/src/Main.ts b/contributes/meta3d-input-gameobjectname/src/Main.ts new file mode 100755 index 000000000..7ec8e72f3 --- /dev/null +++ b/contributes/meta3d-input-gameobjectname/src/Main.ts @@ -0,0 +1,23 @@ +import { state as meta3dState, getContribute as getContributeMeta3D } from "meta3d-type" +import { data } from "meta3d-input-input-text-protocol" +import { service, inputContribute } from "meta3d-editor-whole-protocol/src/service/ServiceType" +import { actionName as selectSceneTreeNodeActionName, state as selectSceneTreeNodeState } from "meta3d-action-select-scenetree-node-protocol" + +export let getContribute: getContributeMeta3D> = (api) => { + return { + inputName: "GameObjectNameInput", + func: (meta3dState) => { + let { gameObject } = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).scene(meta3dState) + + return Promise.resolve(api.nullable.bind( + selectSceneTreeNodeState => { + return api.nullable.map(selectedGameObject => { + return api.nullable.getWithDefault(gameObject.getGameObjectName(meta3dState, selectedGameObject), "") + }, + selectSceneTreeNodeState.selectedGameObject + ) + }, + api.action.getActionState(meta3dState, selectSceneTreeNodeActionName))) + } + } +} diff --git a/contributes/meta3d-input-gameobjectname/tsconfig.json b/contributes/meta3d-input-gameobjectname/tsconfig.json new file mode 100755 index 000000000..a8418c65b --- /dev/null +++ b/contributes/meta3d-input-gameobjectname/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + // "noUnusedLocals": true, + // "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/contributes/meta3d-input-gameobjectname/webpack.config.js b/contributes/meta3d-input-gameobjectname/webpack.config.js new file mode 100755 index 000000000..1de4da2d5 --- /dev/null +++ b/contributes/meta3d-input-gameobjectname/webpack.config.js @@ -0,0 +1,64 @@ +const path = require('path'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); + +module.exports = { + entry: "./src/Main.ts", + mode: process.env.NODE_ENV.trim() == 'production' ? 'production' : 'development', + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'static/js/[name].js', + library: { + name: 'Contribute', + type: 'window', + }, + }, + + // Enable sourcemaps for debugging webpack's output. + // devtool: "source-map", + + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'], + modules: ['node_modules'] + }, + + module: { + rules: [ + // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. + { + test: /\.tsx?$/, + exclude: /node_modules/, + use: "ts-loader" + }, + // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. + { + enforce: 'pre', + test: /\.js$/, + loader: "source-map-loader" + }, + ] + }, + plugins: [ + /** + * All files inside webpack's output.path directory will be removed once, but the + * directory itself will not be. If using webpack 4+'s default configuration, + * everything under /dist/ will be removed. + * Use cleanOnceBeforeBuildPatterns to override this behavior. + * + * During rebuilds, all webpack assets that are not used anymore + * will be removed automatically. + * + * See `Options and Defaults` for information + */ + new CleanWebpackPlugin(), + // new HtmlWebpackPlugin({ + // template: './user.html', + // filename: 'user.html', + // }), + ], + // When importing a module whose path matches one of the following, just + // assume a corresponding global variable exists and use that instead. + // This is important because it allows us to avoid bundling all of our + // dependencies, which allows browsers to cache those libraries between builds. + externals: { + } +}; \ No newline at end of file diff --git a/contributes/meta3d-input-inspector/package.json b/contributes/meta3d-input-inspector/package.json index f7cb7d2c0..3bdf8191a 100755 --- a/contributes/meta3d-input-inspector/package.json +++ b/contributes/meta3d-input-inspector/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-input-inspector", - "version": "0.20.0", + "version": "0.20.3", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "description": "", "protocol": { @@ -16,9 +16,9 @@ }, "keywords": [], "dependencies": { + "meta3d-action-select-scenetree-node-protocol": "^0.20.0", "meta3d-editor-whole-protocol": "^0.20.0", "meta3d-input-window-protocol": "^0.20.0", - "meta3d-action-select-scenetree-node-protocol": "^0.20.0", "meta3d-type": "^0.20.0" }, "devDependencies": { @@ -33,4 +33,4 @@ "webpack": "^5.62.1", "webpack-cli": "^4.9.1" } -} \ No newline at end of file +} diff --git a/contributes/meta3d-input-inspector/src/Main.ts b/contributes/meta3d-input-inspector/src/Main.ts index 9effa1271..d871b406c 100755 --- a/contributes/meta3d-input-inspector/src/Main.ts +++ b/contributes/meta3d-input-inspector/src/Main.ts @@ -2,16 +2,14 @@ import { state as meta3dState, getContribute as getContributeMeta3D } from "meta import { data } from "meta3d-input-window-protocol" import { inputContribute } from "meta3d-editor-whole-protocol/src/service/ServiceType" import { actionName as selectSceneTreeNodeActionName, state as selectSceneTreeNodeState } from "meta3d-action-select-scenetree-node-protocol" -import { windowFlags } from "meta3d-imgui-renderer-protocol/src/service/ServiceType" export let getContribute: getContributeMeta3D> = (api) => { return { inputName: "InspectorInput", func: (meta3dState) => { - return { - isShow: !api.nullable.isNullable(api.action.getActionState(meta3dState, selectSceneTreeNodeActionName)), - flags: windowFlags.NoTitleBar - } + return Promise.resolve(!api.nullable.isNullable( + api.nullable.bind(selectSceneTreeNodeState => selectSceneTreeNodeState.selectedGameObject, api.action.getActionState(meta3dState, selectSceneTreeNodeActionName)) + )) } } } diff --git a/contributes/meta3d-input-localeulerangle/.gitignore b/contributes/meta3d-input-localeulerangle/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/contributes/meta3d-input-localeulerangle/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/contributes/meta3d-input-localeulerangle/gulpfile.js b/contributes/meta3d-input-localeulerangle/gulpfile.js new file mode 100755 index 000000000..a4c8812fc --- /dev/null +++ b/contributes/meta3d-input-localeulerangle/gulpfile.js @@ -0,0 +1,25 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish") + +gulp.task("publish_local_env", function (done) { + publish.publishContribute( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContribute( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + + diff --git a/contributes/meta3d-input-localeulerangle/package.json b/contributes/meta3d-input-localeulerangle/package.json new file mode 100755 index 000000000..c913d6f70 --- /dev/null +++ b/contributes/meta3d-input-localeulerangle/package.json @@ -0,0 +1,36 @@ +{ + "name": "meta3d-input-localeulerangle", + "version": "0.20.2", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "description": "", + "protocol": { + "name": "meta3d-input-input-float3-protocol" + }, + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "webpack": "webpack --config webpack.config.js", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publish_local_env", + "meta3d:publish_pro": "cross-env NODE_ENV=production npm run webpack && gulp publish_production_env" + }, + "keywords": [], + "dependencies": { + "meta3d-action-select-scenetree-node-protocol": "^0.20.0", + "meta3d-editor-whole-protocol": "^0.20.0", + "meta3d-input-input-float3-protocol": "^0.20.0", + "meta3d-type": "^0.20.0" + }, + "devDependencies": { + "clean-webpack-plugin": "^4.0.0", + "cross-env": "^7.0.3", + "cz-customizable": "^6.3.0", + "gulp": "^4.0.2", + "meta3d-tool-publish": "^0.20.0", + "source-map-loader": "^3.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.2.3", + "webpack": "^5.62.1", + "webpack-cli": "^4.9.1" + } +} diff --git a/contributes/meta3d-input-localeulerangle/src/Main.ts b/contributes/meta3d-input-localeulerangle/src/Main.ts new file mode 100755 index 000000000..6f95166c9 --- /dev/null +++ b/contributes/meta3d-input-localeulerangle/src/Main.ts @@ -0,0 +1,24 @@ +import { state as meta3dState, getContribute as getContributeMeta3D } from "meta3d-type" +import { data } from "meta3d-input-input-float3-protocol" +import { service, inputContribute } from "meta3d-editor-whole-protocol/src/service/ServiceType" +import { actionName as selectSceneTreeNodeActionName, state as selectSceneTreeNodeState } from "meta3d-action-select-scenetree-node-protocol" + +export let getContribute: getContributeMeta3D> = (api) => { + return { + inputName: "LocalEulerAngleInput", + func: (meta3dState) => { + let { gameObject, transform } = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).scene(meta3dState) + + + return Promise.resolve(api.nullable.bind( + selectSceneTreeNodeState => { + return api.nullable.map(selectedGameObject => { + return transform.getLocalEulerAngles(meta3dState, gameObject.getTransform(meta3dState, selectedGameObject)) + }, + selectSceneTreeNodeState.selectedGameObject + ) + }, + api.action.getActionState(meta3dState, selectSceneTreeNodeActionName))) + } + } +} diff --git a/contributes/meta3d-input-localeulerangle/tsconfig.json b/contributes/meta3d-input-localeulerangle/tsconfig.json new file mode 100755 index 000000000..a8418c65b --- /dev/null +++ b/contributes/meta3d-input-localeulerangle/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + // "noUnusedLocals": true, + // "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/contributes/meta3d-input-localeulerangle/webpack.config.js b/contributes/meta3d-input-localeulerangle/webpack.config.js new file mode 100755 index 000000000..1de4da2d5 --- /dev/null +++ b/contributes/meta3d-input-localeulerangle/webpack.config.js @@ -0,0 +1,64 @@ +const path = require('path'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); + +module.exports = { + entry: "./src/Main.ts", + mode: process.env.NODE_ENV.trim() == 'production' ? 'production' : 'development', + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'static/js/[name].js', + library: { + name: 'Contribute', + type: 'window', + }, + }, + + // Enable sourcemaps for debugging webpack's output. + // devtool: "source-map", + + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'], + modules: ['node_modules'] + }, + + module: { + rules: [ + // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. + { + test: /\.tsx?$/, + exclude: /node_modules/, + use: "ts-loader" + }, + // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. + { + enforce: 'pre', + test: /\.js$/, + loader: "source-map-loader" + }, + ] + }, + plugins: [ + /** + * All files inside webpack's output.path directory will be removed once, but the + * directory itself will not be. If using webpack 4+'s default configuration, + * everything under /dist/ will be removed. + * Use cleanOnceBeforeBuildPatterns to override this behavior. + * + * During rebuilds, all webpack assets that are not used anymore + * will be removed automatically. + * + * See `Options and Defaults` for information + */ + new CleanWebpackPlugin(), + // new HtmlWebpackPlugin({ + // template: './user.html', + // filename: 'user.html', + // }), + ], + // When importing a module whose path matches one of the following, just + // assume a corresponding global variable exists and use that instead. + // This is important because it allows us to avoid bundling all of our + // dependencies, which allows browsers to cache those libraries between builds. + externals: { + } +}; \ No newline at end of file diff --git a/contributes/meta3d-input-localposition/.gitignore b/contributes/meta3d-input-localposition/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/contributes/meta3d-input-localposition/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/contributes/meta3d-input-localposition/gulpfile.js b/contributes/meta3d-input-localposition/gulpfile.js new file mode 100755 index 000000000..a4c8812fc --- /dev/null +++ b/contributes/meta3d-input-localposition/gulpfile.js @@ -0,0 +1,25 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish") + +gulp.task("publish_local_env", function (done) { + publish.publishContribute( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContribute( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + + diff --git a/contributes/meta3d-input-localposition/package.json b/contributes/meta3d-input-localposition/package.json new file mode 100755 index 000000000..2af7e7358 --- /dev/null +++ b/contributes/meta3d-input-localposition/package.json @@ -0,0 +1,36 @@ +{ + "name": "meta3d-input-localposition", + "version": "0.20.2", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "description": "", + "protocol": { + "name": "meta3d-input-input-float3-protocol" + }, + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "webpack": "webpack --config webpack.config.js", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publish_local_env", + "meta3d:publish_pro": "cross-env NODE_ENV=production npm run webpack && gulp publish_production_env" + }, + "keywords": [], + "dependencies": { + "meta3d-action-select-scenetree-node-protocol": "^0.20.0", + "meta3d-editor-whole-protocol": "^0.20.0", + "meta3d-input-input-float3-protocol": "^0.20.0", + "meta3d-type": "^0.20.0" + }, + "devDependencies": { + "clean-webpack-plugin": "^4.0.0", + "cross-env": "^7.0.3", + "cz-customizable": "^6.3.0", + "gulp": "^4.0.2", + "meta3d-tool-publish": "^0.20.0", + "source-map-loader": "^3.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.2.3", + "webpack": "^5.62.1", + "webpack-cli": "^4.9.1" + } +} diff --git a/contributes/meta3d-input-localposition/src/Main.ts b/contributes/meta3d-input-localposition/src/Main.ts new file mode 100755 index 000000000..810cb8fd7 --- /dev/null +++ b/contributes/meta3d-input-localposition/src/Main.ts @@ -0,0 +1,24 @@ +import { state as meta3dState, getContribute as getContributeMeta3D } from "meta3d-type" +import { data } from "meta3d-input-input-float3-protocol" +import { service, inputContribute } from "meta3d-editor-whole-protocol/src/service/ServiceType" +import { actionName as selectSceneTreeNodeActionName, state as selectSceneTreeNodeState } from "meta3d-action-select-scenetree-node-protocol" + +export let getContribute: getContributeMeta3D> = (api) => { + return { + inputName: "LocalPositionInput", + func: (meta3dState) => { + let { gameObject, transform } = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).scene(meta3dState) + + + return Promise.resolve(api.nullable.bind( + selectSceneTreeNodeState => { + return api.nullable.map(selectedGameObject => { + return transform.getLocalPosition(meta3dState, gameObject.getTransform(meta3dState, selectedGameObject)) + }, + selectSceneTreeNodeState.selectedGameObject + ) + }, + api.action.getActionState(meta3dState, selectSceneTreeNodeActionName))) + } + } +} diff --git a/contributes/meta3d-input-localposition/tsconfig.json b/contributes/meta3d-input-localposition/tsconfig.json new file mode 100755 index 000000000..a8418c65b --- /dev/null +++ b/contributes/meta3d-input-localposition/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + // "noUnusedLocals": true, + // "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/contributes/meta3d-input-localposition/webpack.config.js b/contributes/meta3d-input-localposition/webpack.config.js new file mode 100755 index 000000000..1de4da2d5 --- /dev/null +++ b/contributes/meta3d-input-localposition/webpack.config.js @@ -0,0 +1,64 @@ +const path = require('path'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); + +module.exports = { + entry: "./src/Main.ts", + mode: process.env.NODE_ENV.trim() == 'production' ? 'production' : 'development', + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'static/js/[name].js', + library: { + name: 'Contribute', + type: 'window', + }, + }, + + // Enable sourcemaps for debugging webpack's output. + // devtool: "source-map", + + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'], + modules: ['node_modules'] + }, + + module: { + rules: [ + // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. + { + test: /\.tsx?$/, + exclude: /node_modules/, + use: "ts-loader" + }, + // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. + { + enforce: 'pre', + test: /\.js$/, + loader: "source-map-loader" + }, + ] + }, + plugins: [ + /** + * All files inside webpack's output.path directory will be removed once, but the + * directory itself will not be. If using webpack 4+'s default configuration, + * everything under /dist/ will be removed. + * Use cleanOnceBeforeBuildPatterns to override this behavior. + * + * During rebuilds, all webpack assets that are not used anymore + * will be removed automatically. + * + * See `Options and Defaults` for information + */ + new CleanWebpackPlugin(), + // new HtmlWebpackPlugin({ + // template: './user.html', + // filename: 'user.html', + // }), + ], + // When importing a module whose path matches one of the following, just + // assume a corresponding global variable exists and use that instead. + // This is important because it allows us to avoid bundling all of our + // dependencies, which allows browsers to cache those libraries between builds. + externals: { + } +}; \ No newline at end of file diff --git a/contributes/meta3d-input-localscale/.gitignore b/contributes/meta3d-input-localscale/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/contributes/meta3d-input-localscale/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/contributes/meta3d-input-localscale/gulpfile.js b/contributes/meta3d-input-localscale/gulpfile.js new file mode 100755 index 000000000..a4c8812fc --- /dev/null +++ b/contributes/meta3d-input-localscale/gulpfile.js @@ -0,0 +1,25 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish") + +gulp.task("publish_local_env", function (done) { + publish.publishContribute( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContribute( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + + diff --git a/contributes/meta3d-input-localscale/package.json b/contributes/meta3d-input-localscale/package.json new file mode 100755 index 000000000..3b169fd6e --- /dev/null +++ b/contributes/meta3d-input-localscale/package.json @@ -0,0 +1,36 @@ +{ + "name": "meta3d-input-localscale", + "version": "0.20.2", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "description": "", + "protocol": { + "name": "meta3d-input-input-float3-protocol" + }, + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "webpack": "webpack --config webpack.config.js", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publish_local_env", + "meta3d:publish_pro": "cross-env NODE_ENV=production npm run webpack && gulp publish_production_env" + }, + "keywords": [], + "dependencies": { + "meta3d-action-select-scenetree-node-protocol": "^0.20.0", + "meta3d-editor-whole-protocol": "^0.20.0", + "meta3d-input-input-float3-protocol": "^0.20.0", + "meta3d-type": "^0.20.0" + }, + "devDependencies": { + "clean-webpack-plugin": "^4.0.0", + "cross-env": "^7.0.3", + "cz-customizable": "^6.3.0", + "gulp": "^4.0.2", + "meta3d-tool-publish": "^0.20.0", + "source-map-loader": "^3.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.2.3", + "webpack": "^5.62.1", + "webpack-cli": "^4.9.1" + } +} diff --git a/contributes/meta3d-input-localscale/src/Main.ts b/contributes/meta3d-input-localscale/src/Main.ts new file mode 100755 index 000000000..a1f08c377 --- /dev/null +++ b/contributes/meta3d-input-localscale/src/Main.ts @@ -0,0 +1,24 @@ +import { state as meta3dState, getContribute as getContributeMeta3D } from "meta3d-type" +import { data } from "meta3d-input-input-float3-protocol" +import { service, inputContribute } from "meta3d-editor-whole-protocol/src/service/ServiceType" +import { actionName as selectSceneTreeNodeActionName, state as selectSceneTreeNodeState } from "meta3d-action-select-scenetree-node-protocol" + +export let getContribute: getContributeMeta3D> = (api) => { + return { + inputName: "LocalScaleInput", + func: (meta3dState) => { + let { gameObject, transform } = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).scene(meta3dState) + + + return Promise.resolve(api.nullable.bind( + selectSceneTreeNodeState => { + return api.nullable.map(selectedGameObject => { + return transform.getLocalScale(meta3dState, gameObject.getTransform(meta3dState, selectedGameObject)) + }, + selectSceneTreeNodeState.selectedGameObject + ) + }, + api.action.getActionState(meta3dState, selectSceneTreeNodeActionName))) + } + } +} diff --git a/contributes/meta3d-input-localscale/tsconfig.json b/contributes/meta3d-input-localscale/tsconfig.json new file mode 100755 index 000000000..a8418c65b --- /dev/null +++ b/contributes/meta3d-input-localscale/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + // "noUnusedLocals": true, + // "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/contributes/meta3d-input-localscale/webpack.config.js b/contributes/meta3d-input-localscale/webpack.config.js new file mode 100755 index 000000000..1de4da2d5 --- /dev/null +++ b/contributes/meta3d-input-localscale/webpack.config.js @@ -0,0 +1,64 @@ +const path = require('path'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); + +module.exports = { + entry: "./src/Main.ts", + mode: process.env.NODE_ENV.trim() == 'production' ? 'production' : 'development', + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'static/js/[name].js', + library: { + name: 'Contribute', + type: 'window', + }, + }, + + // Enable sourcemaps for debugging webpack's output. + // devtool: "source-map", + + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'], + modules: ['node_modules'] + }, + + module: { + rules: [ + // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. + { + test: /\.tsx?$/, + exclude: /node_modules/, + use: "ts-loader" + }, + // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. + { + enforce: 'pre', + test: /\.js$/, + loader: "source-map-loader" + }, + ] + }, + plugins: [ + /** + * All files inside webpack's output.path directory will be removed once, but the + * directory itself will not be. If using webpack 4+'s default configuration, + * everything under /dist/ will be removed. + * Use cleanOnceBeforeBuildPatterns to override this behavior. + * + * During rebuilds, all webpack assets that are not used anymore + * will be removed automatically. + * + * See `Options and Defaults` for information + */ + new CleanWebpackPlugin(), + // new HtmlWebpackPlugin({ + // template: './user.html', + // filename: 'user.html', + // }), + ], + // When importing a module whose path matches one of the following, just + // assume a corresponding global variable exists and use that instead. + // This is important because it allows us to avoid bundling all of our + // dependencies, which allows browsers to cache those libraries between builds. + externals: { + } +}; \ No newline at end of file diff --git a/contributes/meta3d-ui-control-collapsing/.gitignore b/contributes/meta3d-ui-control-collapsing/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/contributes/meta3d-ui-control-collapsing/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/contributes/meta3d-ui-control-collapsing/gulpfile.js b/contributes/meta3d-ui-control-collapsing/gulpfile.js new file mode 100755 index 000000000..a4c8812fc --- /dev/null +++ b/contributes/meta3d-ui-control-collapsing/gulpfile.js @@ -0,0 +1,25 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish") + +gulp.task("publish_local_env", function (done) { + publish.publishContribute( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContribute( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + + diff --git a/contributes/meta3d-ui-control-collapsing/package.json b/contributes/meta3d-ui-control-collapsing/package.json new file mode 100755 index 000000000..d2ae263e9 --- /dev/null +++ b/contributes/meta3d-ui-control-collapsing/package.json @@ -0,0 +1,34 @@ +{ + "name": "meta3d-ui-control-collapsing", + "version": "0.20.1", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "protocol": { + "name": "meta3d-ui-control-collapsing-protocol" + }, + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "webpack": "webpack --config webpack.config.js", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publish_local_env", + "meta3d:publish_pro": "cross-env NODE_ENV=production npm run webpack && gulp publish_production_env" + }, + "keywords": [], + "dependencies": { + "meta3d-editor-whole-protocol": "^0.20.0", + "meta3d-type": "^0.20.0", + "meta3d-ui-control-collapsing-protocol": "^0.20.0" + }, + "devDependencies": { + "clean-webpack-plugin": "^4.0.0", + "cross-env": "^7.0.3", + "cz-customizable": "^6.3.0", + "gulp": "^4.0.2", + "meta3d-tool-publish": "^0.20.0", + "source-map-loader": "^3.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.2.3", + "webpack": "^5.62.1", + "webpack-cli": "^4.9.1" + } +} diff --git a/contributes/meta3d-ui-control-collapsing/src/Main.ts b/contributes/meta3d-ui-control-collapsing/src/Main.ts new file mode 100755 index 000000000..32e97df5f --- /dev/null +++ b/contributes/meta3d-ui-control-collapsing/src/Main.ts @@ -0,0 +1,30 @@ +import { getContribute as getContributeMeta3D } from "meta3d-type" +import { uiControlName, state as uiControlState, inputFunc, specificData, outputData } from "meta3d-ui-control-collapsing-protocol" +import { service, uiControlContribute } from "meta3d-editor-whole-protocol/src/service/ServiceType" + +export let getContribute: getContributeMeta3D> = (api) => { + return { + uiControlName: uiControlName, + func: (meta3dState, + _, + { + rect, + label, + isOpen, + cond, + childrenFunc + } + ) => { + let { collapsing } = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).ui(meta3dState) + + if (collapsing(meta3dState, label, isOpen, cond.selected)) { + return childrenFunc(meta3dState).then(meta3dState => { + return [meta3dState, null] + }) + } + + return Promise.resolve([meta3dState, null]) + }, + init: (meta3dState) => Promise.resolve(meta3dState) + } +} diff --git a/contributes/meta3d-ui-control-collapsing/tsconfig.json b/contributes/meta3d-ui-control-collapsing/tsconfig.json new file mode 100755 index 000000000..a8418c65b --- /dev/null +++ b/contributes/meta3d-ui-control-collapsing/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + // "noUnusedLocals": true, + // "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/contributes/meta3d-ui-control-collapsing/webpack.config.js b/contributes/meta3d-ui-control-collapsing/webpack.config.js new file mode 100755 index 000000000..1de4da2d5 --- /dev/null +++ b/contributes/meta3d-ui-control-collapsing/webpack.config.js @@ -0,0 +1,64 @@ +const path = require('path'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); + +module.exports = { + entry: "./src/Main.ts", + mode: process.env.NODE_ENV.trim() == 'production' ? 'production' : 'development', + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'static/js/[name].js', + library: { + name: 'Contribute', + type: 'window', + }, + }, + + // Enable sourcemaps for debugging webpack's output. + // devtool: "source-map", + + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'], + modules: ['node_modules'] + }, + + module: { + rules: [ + // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. + { + test: /\.tsx?$/, + exclude: /node_modules/, + use: "ts-loader" + }, + // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. + { + enforce: 'pre', + test: /\.js$/, + loader: "source-map-loader" + }, + ] + }, + plugins: [ + /** + * All files inside webpack's output.path directory will be removed once, but the + * directory itself will not be. If using webpack 4+'s default configuration, + * everything under /dist/ will be removed. + * Use cleanOnceBeforeBuildPatterns to override this behavior. + * + * During rebuilds, all webpack assets that are not used anymore + * will be removed automatically. + * + * See `Options and Defaults` for information + */ + new CleanWebpackPlugin(), + // new HtmlWebpackPlugin({ + // template: './user.html', + // filename: 'user.html', + // }), + ], + // When importing a module whose path matches one of the following, just + // assume a corresponding global variable exists and use that instead. + // This is important because it allows us to avoid bundling all of our + // dependencies, which allows browsers to cache those libraries between builds. + externals: { + } +}; \ No newline at end of file diff --git a/contributes/meta3d-ui-control-game-view/package.json b/contributes/meta3d-ui-control-game-view/package.json index 0288d45d9..97744c7b1 100755 --- a/contributes/meta3d-ui-control-game-view/package.json +++ b/contributes/meta3d-ui-control-game-view/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-ui-control-game-view", - "version": "0.20.2", + "version": "0.20.3", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "displayName": "game view", "repoLink": "https://github.com/Meta3D-Technology/Meta3D/tree/master/contributes/meta3d-ui-control-game-view", @@ -13,14 +13,14 @@ "watch": "tsc -w -noEmit", "webpack": "webpack --config webpack.config.js", "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", -"meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publish_local_env", + "meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publish_local_env", "meta3d:publish_pro": "cross-env NODE_ENV=production npm run webpack && gulp publish_production_env" }, "keywords": [], "dependencies": { + "meta3d-editor-whole-protocol": "^0.20.0", "meta3d-type": "^0.20.0", - "meta3d-ui-control-game-view-protocol": "^0.20.0", - "meta3d-editor-whole-protocol": "^0.20.0" + "meta3d-ui-control-game-view-protocol": "^0.20.0" }, "devDependencies": { "clean-webpack-plugin": "^4.0.0", diff --git a/contributes/meta3d-ui-control-game-view/src/Main.ts b/contributes/meta3d-ui-control-game-view/src/Main.ts index c03532199..21d211df7 100755 --- a/contributes/meta3d-ui-control-game-view/src/Main.ts +++ b/contributes/meta3d-ui-control-game-view/src/Main.ts @@ -3,6 +3,7 @@ import { uiControlName, textureID, state as uiControlState, inputFunc, specificD import { changeToStrictlyNull, getFBORect } from "meta3d-ui-control-view-utils/src/Main" import { uiControlContribute, service as editorWholeService } from "meta3d-editor-whole-protocol/src/service/ServiceType" import { service as renderService } from "meta3d-editor-gameview-render-protocol/src/service/ServiceType" +import { windowFlags } from "meta3d-imgui-renderer-protocol/src/service/ServiceType" export let getContribute: getContributeMeta3D> = (api) => { return { @@ -24,7 +25,7 @@ export let getContribute: getContributeMeta3D { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContribute( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + + diff --git a/contributes/meta3d-ui-control-input-float3/package.json b/contributes/meta3d-ui-control-input-float3/package.json new file mode 100755 index 000000000..bc84a7db6 --- /dev/null +++ b/contributes/meta3d-ui-control-input-float3/package.json @@ -0,0 +1,35 @@ +{ + "name": "meta3d-ui-control-input-float3", + "version": "0.20.12", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "description": "", + "protocol": { + "name": "meta3d-ui-control-input-float3-protocol" + }, + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "webpack": "webpack --config webpack.config.js", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publish_local_env", + "meta3d:publish_pro": "cross-env NODE_ENV=production npm run webpack && gulp publish_production_env" + }, + "keywords": [], + "dependencies": { + "meta3d-editor-whole-protocol": "^0.20.0", + "meta3d-type": "^0.20.0", + "meta3d-ui-control-input-float3-protocol": "^0.20.0" + }, + "devDependencies": { + "clean-webpack-plugin": "^4.0.0", + "cross-env": "^7.0.3", + "cz-customizable": "^6.3.0", + "gulp": "^4.0.2", + "meta3d-tool-publish": "^0.20.0", + "source-map-loader": "^3.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.2.3", + "webpack": "^5.62.1", + "webpack-cli": "^4.9.1" + } +} diff --git a/contributes/meta3d-ui-control-input-float3/src/Main.ts b/contributes/meta3d-ui-control-input-float3/src/Main.ts new file mode 100755 index 000000000..3c4bd8fd1 --- /dev/null +++ b/contributes/meta3d-ui-control-input-float3/src/Main.ts @@ -0,0 +1,37 @@ +import { api, getContribute as getContributeMeta3D } from "meta3d-type" +import { inputFunc, specificData, outputData, uiControlName } from "meta3d-ui-control-input-float3-protocol" +import { service, uiControlContribute } from "meta3d-editor-whole-protocol/src/service/ServiceType" + +export let getContribute: getContributeMeta3D> = (api) => { + return { + uiControlName: uiControlName, + func: (meta3dState, + getInputFunc, + { + rect, + label, + step, + stepFast + } + ) => { + if (api.nullable.isNullable(getInputFunc)) { + return Promise.resolve([meta3dState, null]) + } + + return api.nullable.getExn(getInputFunc)(meta3dState).then((value) => { + if (api.nullable.isNullable(value)) { + return [meta3dState, null] + } + + value = api.nullable.getExn(value) + + let { inputFloat3 } = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).ui(meta3dState) + + return inputFloat3(meta3dState, label, value, step, stepFast, rect.width) + }) + }, + init: (meta3dState) => { + return Promise.resolve(meta3dState) + } + } +} diff --git a/contributes/meta3d-ui-control-input-float3/tsconfig.json b/contributes/meta3d-ui-control-input-float3/tsconfig.json new file mode 100755 index 000000000..a8418c65b --- /dev/null +++ b/contributes/meta3d-ui-control-input-float3/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + // "noUnusedLocals": true, + // "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/contributes/meta3d-ui-control-input-float3/webpack.config.js b/contributes/meta3d-ui-control-input-float3/webpack.config.js new file mode 100755 index 000000000..1de4da2d5 --- /dev/null +++ b/contributes/meta3d-ui-control-input-float3/webpack.config.js @@ -0,0 +1,64 @@ +const path = require('path'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); + +module.exports = { + entry: "./src/Main.ts", + mode: process.env.NODE_ENV.trim() == 'production' ? 'production' : 'development', + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'static/js/[name].js', + library: { + name: 'Contribute', + type: 'window', + }, + }, + + // Enable sourcemaps for debugging webpack's output. + // devtool: "source-map", + + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'], + modules: ['node_modules'] + }, + + module: { + rules: [ + // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. + { + test: /\.tsx?$/, + exclude: /node_modules/, + use: "ts-loader" + }, + // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. + { + enforce: 'pre', + test: /\.js$/, + loader: "source-map-loader" + }, + ] + }, + plugins: [ + /** + * All files inside webpack's output.path directory will be removed once, but the + * directory itself will not be. If using webpack 4+'s default configuration, + * everything under /dist/ will be removed. + * Use cleanOnceBeforeBuildPatterns to override this behavior. + * + * During rebuilds, all webpack assets that are not used anymore + * will be removed automatically. + * + * See `Options and Defaults` for information + */ + new CleanWebpackPlugin(), + // new HtmlWebpackPlugin({ + // template: './user.html', + // filename: 'user.html', + // }), + ], + // When importing a module whose path matches one of the following, just + // assume a corresponding global variable exists and use that instead. + // This is important because it allows us to avoid bundling all of our + // dependencies, which allows browsers to cache those libraries between builds. + externals: { + } +}; \ No newline at end of file diff --git a/contributes/meta3d-ui-control-input-text/.gitignore b/contributes/meta3d-ui-control-input-text/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/contributes/meta3d-ui-control-input-text/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/contributes/meta3d-ui-control-input-text/gulpfile.js b/contributes/meta3d-ui-control-input-text/gulpfile.js new file mode 100755 index 000000000..a4c8812fc --- /dev/null +++ b/contributes/meta3d-ui-control-input-text/gulpfile.js @@ -0,0 +1,25 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish") + +gulp.task("publish_local_env", function (done) { + publish.publishContribute( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContribute( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + + diff --git a/contributes/meta3d-ui-control-input-text/package.json b/contributes/meta3d-ui-control-input-text/package.json new file mode 100755 index 000000000..7111a50e9 --- /dev/null +++ b/contributes/meta3d-ui-control-input-text/package.json @@ -0,0 +1,35 @@ +{ + "name": "meta3d-ui-control-input-text", + "version": "0.20.12", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "description": "", + "protocol": { + "name": "meta3d-ui-control-input-text-protocol" + }, + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "webpack": "webpack --config webpack.config.js", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publish_local_env", + "meta3d:publish_pro": "cross-env NODE_ENV=production npm run webpack && gulp publish_production_env" + }, + "keywords": [], + "dependencies": { + "meta3d-editor-whole-protocol": "^0.20.0", + "meta3d-type": "^0.20.0", + "meta3d-ui-control-input-text-protocol": "^0.20.0" + }, + "devDependencies": { + "clean-webpack-plugin": "^4.0.0", + "cross-env": "^7.0.3", + "cz-customizable": "^6.3.0", + "gulp": "^4.0.2", + "meta3d-tool-publish": "^0.20.0", + "source-map-loader": "^3.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.2.3", + "webpack": "^5.62.1", + "webpack-cli": "^4.9.1" + } +} diff --git a/contributes/meta3d-ui-control-input-text/src/Main.ts b/contributes/meta3d-ui-control-input-text/src/Main.ts new file mode 100755 index 000000000..898daa994 --- /dev/null +++ b/contributes/meta3d-ui-control-input-text/src/Main.ts @@ -0,0 +1,36 @@ +import { api, getContribute as getContributeMeta3D } from "meta3d-type" +import { inputFunc, specificData, outputData, uiControlName } from "meta3d-ui-control-input-text-protocol" +import { service, uiControlContribute } from "meta3d-editor-whole-protocol/src/service/ServiceType" + +export let getContribute: getContributeMeta3D> = (api) => { + return { + uiControlName: uiControlName, + func: (meta3dState, + getInputFunc, + { + rect, + label, + maxLength + } + ) => { + if (api.nullable.isNullable(getInputFunc)) { + return Promise.resolve([meta3dState, null]) + } + + return api.nullable.getExn(getInputFunc)(meta3dState).then((text) => { + if (api.nullable.isNullable(text)) { + return [meta3dState, null] + } + + text = api.nullable.getExn(text) + + let { inputText } = api.nullable.getExn(api.getPackageService(meta3dState, "meta3d-editor-whole-protocol")).ui(meta3dState) + + return inputText(meta3dState, label, text, maxLength, rect.width) + }) + }, + init: (meta3dState) => { + return Promise.resolve(meta3dState) + } + } +} diff --git a/contributes/meta3d-ui-control-input-text/tsconfig.json b/contributes/meta3d-ui-control-input-text/tsconfig.json new file mode 100755 index 000000000..a8418c65b --- /dev/null +++ b/contributes/meta3d-ui-control-input-text/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + // "noUnusedLocals": true, + // "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/contributes/meta3d-ui-control-input-text/webpack.config.js b/contributes/meta3d-ui-control-input-text/webpack.config.js new file mode 100755 index 000000000..1de4da2d5 --- /dev/null +++ b/contributes/meta3d-ui-control-input-text/webpack.config.js @@ -0,0 +1,64 @@ +const path = require('path'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); + +module.exports = { + entry: "./src/Main.ts", + mode: process.env.NODE_ENV.trim() == 'production' ? 'production' : 'development', + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'static/js/[name].js', + library: { + name: 'Contribute', + type: 'window', + }, + }, + + // Enable sourcemaps for debugging webpack's output. + // devtool: "source-map", + + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'], + modules: ['node_modules'] + }, + + module: { + rules: [ + // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. + { + test: /\.tsx?$/, + exclude: /node_modules/, + use: "ts-loader" + }, + // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. + { + enforce: 'pre', + test: /\.js$/, + loader: "source-map-loader" + }, + ] + }, + plugins: [ + /** + * All files inside webpack's output.path directory will be removed once, but the + * directory itself will not be. If using webpack 4+'s default configuration, + * everything under /dist/ will be removed. + * Use cleanOnceBeforeBuildPatterns to override this behavior. + * + * During rebuilds, all webpack assets that are not used anymore + * will be removed automatically. + * + * See `Options and Defaults` for information + */ + new CleanWebpackPlugin(), + // new HtmlWebpackPlugin({ + // template: './user.html', + // filename: 'user.html', + // }), + ], + // When importing a module whose path matches one of the following, just + // assume a corresponding global variable exists and use that instead. + // This is important because it allows us to avoid bundling all of our + // dependencies, which allows browsers to cache those libraries between builds. + externals: { + } +}; \ No newline at end of file diff --git a/contributes/meta3d-ui-control-scene-view/package.json b/contributes/meta3d-ui-control-scene-view/package.json index c7dd2e8e8..3e995f8fb 100755 --- a/contributes/meta3d-ui-control-scene-view/package.json +++ b/contributes/meta3d-ui-control-scene-view/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-ui-control-scene-view", - "version": "0.20.3", + "version": "0.20.4", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "displayName": "scene view", "description": "", diff --git a/contributes/meta3d-ui-control-scene-view/src/Main.ts b/contributes/meta3d-ui-control-scene-view/src/Main.ts index e0d9c19e3..4d5425549 100755 --- a/contributes/meta3d-ui-control-scene-view/src/Main.ts +++ b/contributes/meta3d-ui-control-scene-view/src/Main.ts @@ -3,6 +3,7 @@ import { uiControlName, textureID, state as uiControlState, inputFunc, specificD import { changeToStrictlyNull, getFBORect } from "meta3d-ui-control-view-utils/src/Main" import { uiControlContribute, service as editorWholeService } from "meta3d-editor-whole-protocol/src/service/ServiceType" import { service as renderService } from "meta3d-editor-sceneview-render-protocol/src/service/ServiceType" +import { windowFlags } from "meta3d-imgui-renderer-protocol/src/service/ServiceType" export let getContribute: getContributeMeta3D> = (api) => { return { @@ -24,7 +25,7 @@ export let getContribute: getContributeMeta3D> = (api) => { return { @@ -12,22 +11,20 @@ export let getContribute: getContributeMeta3D { let inputPromise: Promise if (api.nullable.isNullable(getInputFunc)) { - inputPromise = Promise.resolve({ - isShow: true, - flags: windowFlags.NoTitleBar - }) + inputPromise = Promise.resolve(true) } else { inputPromise = api.nullable.getExn(getInputFunc)(meta3dState) } return inputPromise.then(data => { - if (!data.isShow) { + if (!data) { return [meta3dState, null] } @@ -35,7 +32,7 @@ export let getContribute: getContributeMeta3D { meta3dState = endWindow(meta3dState) diff --git a/defaults/meta3d-type/src/contribute/UIControlProtocolConfigType.res b/defaults/meta3d-type/src/contribute/UIControlProtocolConfigType.res index 4b47be4fd..1d542a4f8 100755 --- a/defaults/meta3d-type/src/contribute/UIControlProtocolConfigType.res +++ b/defaults/meta3d-type/src/contribute/UIControlProtocolConfigType.res @@ -17,6 +17,7 @@ type supportedEventName = [ | #drop_asset | #select_tree_node | #drag_tree_node + | #input_change ] type actionName = Js.Nullable.t @@ -25,7 +26,7 @@ type versionRange = string type generateUIControlCommonDataStr = string => string -type uiControlSpecicFieldType = [#string | #imageBase64 | #menuItems] +type uiControlSpecicFieldType = [#string | #imageBase64 | #menuItems | #bool | #select | #number] type uiControlSpecicFieldValue diff --git a/defaults/meta3d-type/src/contribute/UIControlProtocolConfigType.ts b/defaults/meta3d-type/src/contribute/UIControlProtocolConfigType.ts index 861d51d85..f3894692e 100755 --- a/defaults/meta3d-type/src/contribute/UIControlProtocolConfigType.ts +++ b/defaults/meta3d-type/src/contribute/UIControlProtocolConfigType.ts @@ -10,7 +10,7 @@ export type rect = { export type childrenFunc = (state: state) => state -export type supportedEventName = "button_click" | "run" | "stop" | "click1" | "click2" | "select_asset" | "drop_asset" | "select_tree_node" | "drag_tree_node" +export type supportedEventName = "button_click" | "run" | "stop" | "click1" | "click2" | "select_asset" | "drop_asset" | "select_tree_node" | "drag_tree_node" | "input_change" export type actionName = nullable @@ -19,7 +19,7 @@ export type versionRange = string export type generateUIControlCommonDataStr = (rect: string) => string -type uiControlSpecicFieldType = "string" | "imageBase64" | "menuItems" +type uiControlSpecicFieldType = "string" | "imageBase64" | "menuItems" | "bool" | "select" | "number" type uiControlSpecicFieldValue = any diff --git a/doc/0.21.0.org b/doc/0.21.0.org index 92ee72f17..748b91100 100755 --- a/doc/0.21.0.org +++ b/doc/0.21.0.org @@ -1033,7 +1033,7 @@ ui control should move out -** TODO Inspector +** DONE Inspector TODO split inspector to multiple ui controls(e.g. Input3Float, Text, InputText, CollapsingHeader + Window) split to Inspector(as container) + multiple Component Inspectors(as member) @@ -1044,6 +1044,8 @@ TODO Window need input TODO add Input3Float, InputText, Collapsing +TODO update UIControlInspector, ElementMRUtils + TODO can make inspector show in element visual: by set uiControlInput to return true @@ -1063,9 +1065,20 @@ TODO update: -TODO fix: + +TODO pass compile + +TODO pass bdd + +TODO publish +TODO run test +test type->bool,select->value + + +TODO fix: + @@ -1090,9 +1103,6 @@ TODO fix: # e.g. xxx-sceneview/gameview -** TODO two kind asset package implement: -BasicAsset -DracoKTX2Asset @@ -1153,6 +1163,22 @@ DracoKTX2Asset # * TODO refactor: remove Specific->label +* TODO fix: stop: should run gameview once + +* TODO fix: specific->imagebase64 preview image same + +* TODO Selected UIControls show label instead of display name + + + +* TODO change input/action file str to same with contribute file +use: +export let getContribute = (api) =>{ + ... +} + + + * TODO switch to element assemble, show loading... @@ -1222,4 +1248,10 @@ if continue 1.->2., then will render more lighter! * TODO remove meta3d-imgui-webgl1-three-renderer in ui package -* TODO feat(platform): ap assemble: PackageInspector, ContributeInspector show protocol,implement repo link \ No newline at end of file +* TODO feat(platform): ap assemble: PackageInspector, ContributeInspector show protocol,implement repo link + + + +* TODO two kind asset package implement: +BasicAsset +DracoKTX2Asset \ No newline at end of file diff --git a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.compiler.log b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.compiler.log index f88434095..f73062126 100644 --- a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.compiler.log +++ b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.compiler.log @@ -1,2 +1,2 @@ -#Start(1700962684582) -#Done(1700962684620) +#Start(1701153393564) +#Done(1701153393612) diff --git a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.ninja_log b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.ninja_log index 71965b024..4afed9ea6 100644 --- a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.ninja_log +++ b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/.ninja_log @@ -1,8 +1,8 @@ # ninja log v6 -1 15 1700962684596404638 src/service/ServiceType.ast 785165cefc5839bb -1 16 1700962684596399730 Meta3dEditorWholeProtocol.cmi 27dde7c45547adb8 -15 21 1700962684603454051 src/service/ServiceType.d 702d225c4edca7ca -21 38 1700962684619886550 src/service/ServiceType-Meta3dEditorWholeProtocol.cmj fa5c1ac9839b773e -21 38 1700962684619886550 src/service/ServiceType-Meta3dEditorWholeProtocol.cmi fa5c1ac9839b773e -21 38 1700962684619886550 ../es6_global/src/service/ServiceType.bs.js fa5c1ac9839b773e -21 38 1700962684619886550 ../js/src/service/ServiceType.bs.js fa5c1ac9839b773e +0 16 1701153393579403299 src/service/ServiceType.ast 785165cefc5839bb +1 17 1701153393579344790 Meta3dEditorWholeProtocol.cmi 27dde7c45547adb8 +16 23 1701153393587520227 src/service/ServiceType.d 702d225c4edca7ca +23 48 1701153393610990586 src/service/ServiceType-Meta3dEditorWholeProtocol.cmj a8368785e12e8557 +23 48 1701153393610990586 src/service/ServiceType-Meta3dEditorWholeProtocol.cmi a8368785e12e8557 +23 48 1701153393610990586 ../es6_global/src/service/ServiceType.bs.js a8368785e12e8557 +23 48 1701153393610990586 ../js/src/service/ServiceType.bs.js a8368785e12e8557 diff --git a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/src/service/ServiceType-Meta3dEditorWholeProtocol.cmi b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/src/service/ServiceType-Meta3dEditorWholeProtocol.cmi index 12b35f5aa..92bd679cb 100644 Binary files a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/src/service/ServiceType-Meta3dEditorWholeProtocol.cmi and b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/src/service/ServiceType-Meta3dEditorWholeProtocol.cmi differ diff --git a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/src/service/ServiceType-Meta3dEditorWholeProtocol.cmt b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/src/service/ServiceType-Meta3dEditorWholeProtocol.cmt index 191711c23..2e5568bce 100644 Binary files a/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/src/service/ServiceType-Meta3dEditorWholeProtocol.cmt and b/packages/editor-whole/protocols/extension_protocols/meta3d-editor-whole-protocol/lib/bs/src/service/ServiceType-Meta3dEditorWholeProtocol.cmt differ diff --git a/packages/editor-whole/ui/extensions/meta3d-imgui-webgl1-renderer/package.json b/packages/editor-whole/ui/extensions/meta3d-imgui-webgl1-renderer/package.json index 1fa4ffc07..d495b939b 100755 --- a/packages/editor-whole/ui/extensions/meta3d-imgui-webgl1-renderer/package.json +++ b/packages/editor-whole/ui/extensions/meta3d-imgui-webgl1-renderer/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-imgui-webgl1-renderer", - "version": "0.20.5", + "version": "0.20.6", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "displayName": "imgui-webgl1-renderer", "protocol": { diff --git a/packages/editor-whole/ui/extensions/meta3d-imgui-webgl1-renderer/src/Main.ts b/packages/editor-whole/ui/extensions/meta3d-imgui-webgl1-renderer/src/Main.ts index 037f38519..3424e3c43 100755 --- a/packages/editor-whole/ui/extensions/meta3d-imgui-webgl1-renderer/src/Main.ts +++ b/packages/editor-whole/ui/extensions/meta3d-imgui-webgl1-renderer/src/Main.ts @@ -1,11 +1,12 @@ import { getExtensionService as getExtensionServiceMeta3D, createExtensionState as createExtensionStateMeta3D, getExtensionLife as getLifeMeta3D, state as meta3dState } from "meta3d-type" -import { menuLabel, service, windowFlags } from "meta3d-imgui-renderer-protocol/src/service/ServiceType" +import { cond, menuLabel, service, windowFlags } from "meta3d-imgui-renderer-protocol/src/service/ServiceType" import { state } from "meta3d-imgui-renderer-protocol/src/state/StateType" import * as ImGui from "./lib/imgui" import * as ImGui_Impl from "./lib/imgui_impl" -import { setNextWindowRect } from "./Utils" +import { buildBind, buildRef, setNextWindowRect } from "./Utils" import { tree } from "./Tree" import { asset } from "./Asset" +import { nullable } from "meta3d-commonlib-ts/src/nullable" // import { inspector } from "./Inspector" // let _generateUniqueId = () => { @@ -239,9 +240,7 @@ export let getExtensionService: getExtensionServiceMeta3D< return selectItemLabel }, - // inspector: inspector, tree: tree, - inspector: {} as any, switchButton: (isClick1State, { click1Texture, click2Texture }, [width, height]) => { let isClick1 = false let isClick2 = false @@ -263,6 +262,83 @@ export let getExtensionService: getExtensionServiceMeta3D< return isClick }, + inputText: (label, value, maxLength, width) => { + let newValue: nullable = null + let valueRef = buildRef(value) + + ImGui.PushItemWidth(width) + + if (ImGui.InputText(label, buildBind(valueRef), maxLength)) { + newValue = valueRef.content + } + + return newValue + }, + inputFloat3: (label, [x, y, z], step, stepFast, width) => { + let valueXRef = buildRef(x) + let valueYRef = buildRef(y) + let valueZRef = buildRef(z) + let newValueX: nullable = null + let newValueY: nullable = null + let newValueZ: nullable = null + + ImGui.PushItemWidth(width) + + // ImGui.PushID(_generateUniqueId()) + ImGui.PushID(label + "_x") + if (ImGui.InputFloat("", buildBind(valueXRef), step, stepFast, "%.3f")) { + newValueX = valueXRef.content + newValueY = api.nullable.return(y) + newValueZ = api.nullable.return(z) + } + ImGui.PopID() + ImGui.SameLine() + + ImGui.PushID(label + "_y") + if (ImGui.InputFloat("", buildBind(valueYRef), step, stepFast, "%.3f")) { + newValueY = valueYRef.content + newValueX = api.nullable.return(x) + newValueZ = api.nullable.return(z) + } + ImGui.PopID() + ImGui.SameLine() + + ImGui.PushID(label + "_z") + if (ImGui.InputFloat("", buildBind(valueZRef), step, stepFast, "%.3f")) { + newValueZ = valueZRef.content + newValueX = api.nullable.return(x) + newValueY = api.nullable.return(y) + } + ImGui.PopID() + ImGui.SameLine() + + ImGui.Text(label) + + return api.nullable.bind(newValueX => { + return api.nullable.bind(newValueY => { + return api.nullable.map(newValueZ => { + return [newValueX, newValueY, newValueZ] + }, newValueZ) + }, newValueY) + }, newValueX) + }, + collapsing: (label, isOpen, cond_) => { + let imguiCond = null + switch (cond_) { + case cond.None: + imguiCond = ImGui.Cond.None + break + case cond.Always: + imguiCond = ImGui.Cond.Always + break + default: + throw new Error("unknown cond: " + cond) + } + + ImGui.SetNextItemOpen(isOpen, imguiCond) + + return ImGui.CollapsingHeader(label) + }, getContext: () => { return ImGui_Impl.gl }, diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/dist/static/js/main.js b/packages/editor-whole/ui/extensions/meta3d-ui/dist/static/js/main.js index dbf282c9b..645b293b7 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/dist/static/js/main.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/dist/static/js/main.js @@ -336,7 +336,7 @@ eval("\n\nvar Curry = __webpack_require__(/*! ./curry.js */ \"../../../../../nod \*******************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { -eval("\n\nvar UIManager$Meta3dUi = __webpack_require__(/*! ./UIManager.bs.js */ \"./lib/js/src/UIManager.bs.js\");\nvar NullableSt$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js\");\nvar ImmutableHashMap$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/hash_map/ImmutableHashMap.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/ImmutableHashMap.bs.js\");\n\nfunction getExtensionService(api) {\n var partial_arg = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$1 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$2 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$3 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$4 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$5 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$6 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$7 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n return {\n registerElement: (function (meta3dState, elementContribute) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.registerElement(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), elementContribute));\n }),\n registerSkin: (function (meta3dState, skinContribute) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.registerSkin(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), skinContribute));\n }),\n registerUIControl: (function (meta3dState, uiControlContribute) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.registerUIControl(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), uiControlContribute));\n }),\n registerInput: (function (meta3dState, inputContribute) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.registerInput(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), inputContribute));\n }),\n render: (function (param, param$1, param$2) {\n return UIManager$Meta3dUi.render(api, param, param$1, param$2);\n }),\n show: (function (meta3dState, elementName) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.show(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), elementName));\n }),\n hide: (function (meta3dState, elementName) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.hide(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), elementName));\n }),\n isStateChange: (function (meta3dState, elementName) {\n return UIManager$Meta3dUi.isStateChange(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), elementName);\n }),\n getElementState: (function (meta3dState, elementName) {\n return UIManager$Meta3dUi.getElementState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), elementName);\n }),\n updateElementState: (function (meta3dState, updateElementStateFunc) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.updateElementState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), updateElementStateFunc));\n }),\n getSkin: (function (meta3dState, skinName) {\n return UIManager$Meta3dUi.getSkin(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), skinName);\n }),\n getUIControlFunc: (function (meta3dState, uiControlName) {\n return UIManager$Meta3dUi.getUIControlFuncExn(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), uiControlName);\n }),\n getInputFunc: (function (meta3dState, inputName) {\n return UIManager$Meta3dUi.getInputFunc(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), inputName);\n }),\n getUIControlState: (function (meta3dState, uiControlName) {\n return UIManager$Meta3dUi.getUIControlState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), uiControlName);\n }),\n setUIControlState: (function (meta3dState, uiControlName, uiControlState) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.setUIControlState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), uiControlName, uiControlState));\n }),\n setStyle: (function (meta3dState, style) {\n return UIManager$Meta3dUi.setStyle(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ], style);\n }),\n beginWindow: (function (meta3dState, label) {\n return UIManager$Meta3dUi.beginWindow(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ], label);\n }),\n endWindow: (function (meta3dState) {\n return UIManager$Meta3dUi.endWindow(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ]);\n }),\n beginChild: (function (meta3dState, label) {\n return UIManager$Meta3dUi.beginChild(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ], label);\n }),\n endChild: (function (meta3dState) {\n return UIManager$Meta3dUi.endChild(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ]);\n }),\n setNextWindowRect: (function (meta3dState, rect) {\n return UIManager$Meta3dUi.setNextWindowRect(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ], rect);\n }),\n addFBOTexture: (function (meta3dState, texture, rect) {\n return UIManager$Meta3dUi.addFBOTexture(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ], texture, rect);\n }),\n getFBOTexture: (function (meta3dState, textureID) {\n return UIManager$Meta3dUi.getFBOTexture(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), textureID);\n }),\n setFBOTexture: (function (meta3dState, textureID, texture) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.setFBOTexture(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), textureID, texture));\n }),\n getWindowBarHeight: (function (meta3dState) {\n return UIManager$Meta3dUi.getWindowBarHeight(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ]);\n }),\n getContext: (function (meta3dState) {\n return UIManager$Meta3dUi.getContext(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ]);\n }),\n button: (function (meta3dState, label, size) {\n return UIManager$Meta3dUi.button(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ], label, size);\n }),\n setCursorPos: (function (meta3dState, pos) {\n return UIManager$Meta3dUi.setCursorPos(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ], pos);\n }),\n loadImage: (function (param, param$1) {\n return UIManager$Meta3dUi.loadImage(partial_arg, param, param$1);\n }),\n asset: (function (param, param$1, param$2, param$3, param$4) {\n return UIManager$Meta3dUi.asset(partial_arg$1, param, param$1, param$2, param$3, param$4);\n }),\n handleDragDropTarget: (function (param, param$1) {\n return UIManager$Meta3dUi.handleDragDropTarget(partial_arg$2, param, param$1);\n }),\n menu: (function (param, param$1, param$2, param$3) {\n return UIManager$Meta3dUi.menu(partial_arg$3, param, param$1, param$2, param$3);\n }),\n tree: (function (param, param$1, param$2, param$3, param$4, param$5) {\n return UIManager$Meta3dUi.tree(partial_arg$4, param, param$1, param$2, param$3, param$4, param$5);\n }),\n inspector: (function (param, param$1, param$2, param$3, param$4, param$5, param$6) {\n return UIManager$Meta3dUi.inspector(partial_arg$5, param, param$1, param$2, param$3, param$4, param$5, param$6);\n }),\n switchButton: (function (param, param$1, param$2, param$3) {\n return UIManager$Meta3dUi.switchButton(partial_arg$6, param, param$1, param$2, param$3);\n }),\n imageButton: (function (param, param$1, param$2) {\n return UIManager$Meta3dUi.imageButton(partial_arg$7, param, param$1, param$2);\n }),\n init: UIManager$Meta3dUi.init,\n clear: UIManager$Meta3dUi.clear,\n getCurrentElementState: (function (meta3dState) {\n return UIManager$Meta3dUi.getCurrentElementState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"));\n }),\n setCurrentElementState: (function (meta3dState, currentElementState) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.setCurrentElementState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), currentElementState));\n })\n };\n}\n\nfunction createExtensionState(param) {\n return {\n elementFuncMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n elementStateMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n elementExecOrderMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n isShowMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n isStateChangeMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n skinContributeMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n uiControlContributeMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n uiControlStateMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n inputContributeMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n currentElementName: undefined,\n fboTextureMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined)\n };\n}\n\nfunction getExtensionLife(api, param) {\n return {\n onRegister: null,\n onRestore: NullableSt$Meta3dCommonlib.$$return(function (param, param$1) {\n return UIManager$Meta3dUi.restore(api, param, param$1);\n }),\n onDeepCopy: NullableSt$Meta3dCommonlib.$$return(function (param) {\n return UIManager$Meta3dUi.deepCopy(api, param);\n }),\n onStart: null,\n onInit: null,\n onUpdate: null\n };\n}\n\nexports.getExtensionService = getExtensionService;\nexports.createExtensionState = createExtensionState;\nexports.getExtensionLife = getExtensionLife;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/./lib/js/src/Main.bs.js?"); +eval("\n\nvar UIManager$Meta3dUi = __webpack_require__(/*! ./UIManager.bs.js */ \"./lib/js/src/UIManager.bs.js\");\nvar NullableSt$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js\");\nvar ImmutableHashMap$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/hash_map/ImmutableHashMap.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/ImmutableHashMap.bs.js\");\n\nfunction getExtensionService(api) {\n var partial_arg = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$1 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$2 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$3 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$4 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$5 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$6 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$7 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$8 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n var partial_arg$9 = [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ];\n return {\n registerElement: (function (meta3dState, elementContribute) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.registerElement(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), elementContribute));\n }),\n registerSkin: (function (meta3dState, skinContribute) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.registerSkin(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), skinContribute));\n }),\n registerUIControl: (function (meta3dState, uiControlContribute) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.registerUIControl(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), uiControlContribute));\n }),\n registerInput: (function (meta3dState, inputContribute) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.registerInput(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), inputContribute));\n }),\n render: (function (param, param$1, param$2) {\n return UIManager$Meta3dUi.render(api, param, param$1, param$2);\n }),\n show: (function (meta3dState, elementName) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.show(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), elementName));\n }),\n hide: (function (meta3dState, elementName) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.hide(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), elementName));\n }),\n isStateChange: (function (meta3dState, elementName) {\n return UIManager$Meta3dUi.isStateChange(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), elementName);\n }),\n getElementState: (function (meta3dState, elementName) {\n return UIManager$Meta3dUi.getElementState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), elementName);\n }),\n updateElementState: (function (meta3dState, updateElementStateFunc) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.updateElementState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), updateElementStateFunc));\n }),\n getSkin: (function (meta3dState, skinName) {\n return UIManager$Meta3dUi.getSkin(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), skinName);\n }),\n getUIControlFunc: (function (meta3dState, uiControlName) {\n return UIManager$Meta3dUi.getUIControlFuncExn(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), uiControlName);\n }),\n getInputFunc: (function (meta3dState, inputName) {\n return UIManager$Meta3dUi.getInputFunc(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), inputName);\n }),\n getUIControlState: (function (meta3dState, uiControlName) {\n return UIManager$Meta3dUi.getUIControlState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), uiControlName);\n }),\n setUIControlState: (function (meta3dState, uiControlName, uiControlState) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.setUIControlState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), uiControlName, uiControlState));\n }),\n setStyle: (function (meta3dState, style) {\n return UIManager$Meta3dUi.setStyle(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ], style);\n }),\n beginWindow: (function (meta3dState, label, flags) {\n return UIManager$Meta3dUi.beginWindow(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ], label, flags);\n }),\n endWindow: (function (meta3dState) {\n return UIManager$Meta3dUi.endWindow(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ]);\n }),\n beginChild: (function (meta3dState, label) {\n return UIManager$Meta3dUi.beginChild(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ], label);\n }),\n endChild: (function (meta3dState) {\n return UIManager$Meta3dUi.endChild(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ]);\n }),\n setNextWindowRect: (function (meta3dState, rect) {\n return UIManager$Meta3dUi.setNextWindowRect(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ], rect);\n }),\n addFBOTexture: (function (meta3dState, texture, rect) {\n return UIManager$Meta3dUi.addFBOTexture(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ], texture, rect);\n }),\n getFBOTexture: (function (meta3dState, textureID) {\n return UIManager$Meta3dUi.getFBOTexture(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), textureID);\n }),\n setFBOTexture: (function (meta3dState, textureID, texture) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.setFBOTexture(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), textureID, texture));\n }),\n getWindowBarHeight: (function (meta3dState) {\n return UIManager$Meta3dUi.getWindowBarHeight(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ]);\n }),\n getContext: (function (meta3dState) {\n return UIManager$Meta3dUi.getContext(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ]);\n }),\n button: (function (meta3dState, label, size) {\n return UIManager$Meta3dUi.button(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ], label, size);\n }),\n setCursorPos: (function (meta3dState, pos) {\n return UIManager$Meta3dUi.setCursorPos(meta3dState, [\n api,\n \"meta3d-imgui-renderer-protocol\"\n ], pos);\n }),\n loadImage: (function (param, param$1) {\n return UIManager$Meta3dUi.loadImage(partial_arg, param, param$1);\n }),\n asset: (function (param, param$1, param$2, param$3, param$4) {\n return UIManager$Meta3dUi.asset(partial_arg$1, param, param$1, param$2, param$3, param$4);\n }),\n handleDragDropTarget: (function (param, param$1) {\n return UIManager$Meta3dUi.handleDragDropTarget(partial_arg$2, param, param$1);\n }),\n menu: (function (param, param$1, param$2, param$3) {\n return UIManager$Meta3dUi.menu(partial_arg$3, param, param$1, param$2, param$3);\n }),\n tree: (function (param, param$1, param$2, param$3, param$4, param$5) {\n return UIManager$Meta3dUi.tree(partial_arg$4, param, param$1, param$2, param$3, param$4, param$5);\n }),\n switchButton: (function (param, param$1, param$2, param$3) {\n return UIManager$Meta3dUi.switchButton(partial_arg$5, param, param$1, param$2, param$3);\n }),\n imageButton: (function (param, param$1, param$2) {\n return UIManager$Meta3dUi.imageButton(partial_arg$6, param, param$1, param$2);\n }),\n inputText: (function (param, param$1, param$2, param$3, param$4) {\n return UIManager$Meta3dUi.inputText(partial_arg$7, param, param$1, param$2, param$3, param$4);\n }),\n inputFloat3: (function (param, param$1, param$2, param$3, param$4, param$5) {\n return UIManager$Meta3dUi.inputFloat3(partial_arg$8, param, param$1, param$2, param$3, param$4, param$5);\n }),\n collapsing: (function (param, param$1, param$2, param$3) {\n return UIManager$Meta3dUi.collapsing(partial_arg$9, param, param$1, param$2, param$3);\n }),\n init: UIManager$Meta3dUi.init,\n clear: UIManager$Meta3dUi.clear,\n getCurrentElementState: (function (meta3dState) {\n return UIManager$Meta3dUi.getCurrentElementState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"));\n }),\n setCurrentElementState: (function (meta3dState, currentElementState) {\n return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.setCurrentElementState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), currentElementState));\n })\n };\n}\n\nfunction createExtensionState(param) {\n return {\n elementFuncMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n elementStateMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n elementExecOrderMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n isShowMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n isStateChangeMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n skinContributeMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n uiControlContributeMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n uiControlStateMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n inputContributeMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n currentElementName: undefined,\n fboTextureMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined)\n };\n}\n\nfunction getExtensionLife(api, param) {\n return {\n onRegister: null,\n onRestore: NullableSt$Meta3dCommonlib.$$return(function (param, param$1) {\n return UIManager$Meta3dUi.restore(api, param, param$1);\n }),\n onDeepCopy: NullableSt$Meta3dCommonlib.$$return(function (param) {\n return UIManager$Meta3dUi.deepCopy(api, param);\n }),\n onStart: null,\n onInit: null,\n onUpdate: null\n };\n}\n\nexports.getExtensionService = getExtensionService;\nexports.createExtensionState = createExtensionState;\nexports.getExtensionLife = getExtensionLife;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/./lib/js/src/Main.bs.js?"); /***/ }), @@ -346,7 +346,7 @@ eval("\n\nvar UIManager$Meta3dUi = __webpack_require__(/*! ./UIManager.bs.js */ \************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { -eval("\n\nvar Curry = __webpack_require__(/*! rescript/lib/js/curry.js */ \"../../../../../node_modules/rescript/lib/js/curry.js\");\nvar Caml_obj = __webpack_require__(/*! rescript/lib/js/caml_obj.js */ \"../../../../../node_modules/rescript/lib/js/caml_obj.js\");\nvar Js_array = __webpack_require__(/*! rescript/lib/js/js_array.js */ \"../../../../../node_modules/rescript/lib/js/js_array.js\");\nvar Caml_option = __webpack_require__(/*! rescript/lib/js/caml_option.js */ \"../../../../../node_modules/rescript/lib/js/caml_option.js\");\nvar ArraySt$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/ArraySt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/ArraySt.bs.js\");\nvar OptionSt$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/OptionSt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/OptionSt.bs.js\");\nvar PromiseSt$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/PromiseSt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/PromiseSt.bs.js\");\nvar NullableSt$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js\");\nvar ImmutableHashMap$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/hash_map/ImmutableHashMap.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/ImmutableHashMap.bs.js\");\n\nfunction hide(state, elementName) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: ImmutableHashMap$Meta3dCommonlib.set(state.isShowMap, elementName, false),\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction show(state, elementName) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: ImmutableHashMap$Meta3dCommonlib.set(state.isShowMap, elementName, true),\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction _markStateChange(state, elementName) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: ImmutableHashMap$Meta3dCommonlib.set(state.isStateChangeMap, elementName, true),\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction _markStateNotChange(state, elementName) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: ImmutableHashMap$Meta3dCommonlib.set(state.isStateChangeMap, elementName, false),\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction _markAllStateNotChange(state, needMarkStateNotChangeIds) {\n return ArraySt$Meta3dCommonlib.reduceOneParam(needMarkStateNotChangeIds, _markStateNotChange, state);\n}\n\nfunction _getElementStateExn(param, elementName) {\n return ImmutableHashMap$Meta3dCommonlib.getExn(param.elementStateMap, elementName);\n}\n\nfunction getElementState(param, elementName) {\n return ImmutableHashMap$Meta3dCommonlib.getNullable(param.elementStateMap, elementName);\n}\n\nfunction _setElementState(state, elementName, elementState) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: ImmutableHashMap$Meta3dCommonlib.set(state.elementStateMap, elementName, elementState),\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction _getElementExecOrderExn(state, elementName) {\n return ImmutableHashMap$Meta3dCommonlib.getExn(state.elementExecOrderMap, elementName);\n}\n\nfunction _setElementExecOrder(state, elementName, execOrder) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: ImmutableHashMap$Meta3dCommonlib.set(state.elementExecOrderMap, elementName, execOrder),\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction _getCurrentElementName(state) {\n return OptionSt$Meta3dCommonlib.getExn(state.currentElementName);\n}\n\nfunction _setCurrentElementName(state, elementName) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: elementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction updateElementState(state, updateElementStateFunc) {\n var elementName = OptionSt$Meta3dCommonlib.getExn(state.currentElementName);\n var oldElementState = _getElementStateExn(state, elementName);\n var newElementState = Curry._1(updateElementStateFunc, oldElementState);\n if (Caml_obj.notequal(oldElementState, newElementState)) {\n return _setElementState(_markStateChange(state, elementName), elementName, newElementState);\n } else {\n return _markStateNotChange(state, elementName);\n }\n}\n\nfunction _exec(meta3dState, state) {\n var elementFuncMap = state.elementFuncMap;\n var __x = ImmutableHashMap$Meta3dCommonlib.entries(state.isShowMap);\n return ArraySt$Meta3dCommonlib.traverseReducePromiseM(Js_array.sortInPlaceWith((function (param, param$1) {\n return ImmutableHashMap$Meta3dCommonlib.getExn(state.elementExecOrderMap, param[0]) - ImmutableHashMap$Meta3dCommonlib.getExn(state.elementExecOrderMap, param$1[0]) | 0;\n }), __x), (function (param, param$1) {\n var needMarkStateNotChangeIds = param[1];\n var meta3dState = param[0];\n if (!param$1[1]) {\n return Promise.resolve([\n meta3dState,\n needMarkStateNotChangeIds\n ]);\n }\n var elementName = param$1[0];\n var elementFunc = ImmutableHashMap$Meta3dCommonlib.getExn(elementFuncMap, elementName);\n return PromiseSt$Meta3dCommonlib.map(elementFunc(meta3dState, _getElementStateExn(state, elementName)), (function (meta3dState) {\n return [\n meta3dState,\n ArraySt$Meta3dCommonlib.push(needMarkStateNotChangeIds, elementName)\n ];\n }));\n }), [\n meta3dState,\n []\n ]);\n}\n\nfunction _invokeIMGUIRenderFunc(meta3dState, invokeFunc, param) {\n var imguiRendererExtensionProtocolName = param[1];\n var api = param[0];\n var imguiRendererState = api.getExtensionState(meta3dState, imguiRendererExtensionProtocolName);\n var imguiRendererService = api.getExtensionService(meta3dState, imguiRendererExtensionProtocolName);\n var imguiRendererState$1 = invokeFunc(imguiRendererState, imguiRendererService);\n return api.setExtensionState(meta3dState, imguiRendererExtensionProtocolName, imguiRendererState$1);\n}\n\nfunction _invokeIMGUIRenderFuncWithParam(meta3dState, invokeFunc, param) {\n var imguiRendererExtensionProtocolName = param[1];\n var api = param[0];\n var imguiRendererState = api.getExtensionState(meta3dState, imguiRendererExtensionProtocolName);\n var imguiRendererService = api.getExtensionService(meta3dState, imguiRendererExtensionProtocolName);\n var match = invokeFunc(imguiRendererState, imguiRendererService);\n var meta3dState$1 = api.setExtensionState(meta3dState, imguiRendererExtensionProtocolName, match[0]);\n return [\n meta3dState$1,\n match[1]\n ];\n}\n\nfunction _invokeIMGUIRenderFuncReturnData(meta3dState, invokeFunc, param) {\n var imguiRendererExtensionProtocolName = param[1];\n var api = param[0];\n var imguiRendererState = api.getExtensionState(meta3dState, imguiRendererExtensionProtocolName);\n var imguiRendererService = api.getExtensionService(meta3dState, imguiRendererExtensionProtocolName);\n return invokeFunc(imguiRendererState, imguiRendererService);\n}\n\nfunction render(api, meta3dState, param, time) {\n var imguiRendererExtensionProtocolName = param[1];\n var uiExtensionProtocolName = param[0];\n var state = api.getExtensionState(meta3dState, uiExtensionProtocolName);\n var meta3dState$1 = api.setExtensionState(meta3dState, uiExtensionProtocolName, state);\n var meta3dState$2 = _invokeIMGUIRenderFunc(meta3dState$1, (function (imguiRendererState, imguiRendererService) {\n return imguiRendererService.beforeExec(imguiRendererState, time);\n }), [\n api,\n imguiRendererExtensionProtocolName\n ]);\n return PromiseSt$Meta3dCommonlib.map(PromiseSt$Meta3dCommonlib.map(_exec(meta3dState$2, state), (function (param) {\n var meta3dState = param[0];\n var state = api.getExtensionState(meta3dState, uiExtensionProtocolName);\n var state$1 = _markAllStateNotChange(state, param[1]);\n return api.setExtensionState(meta3dState, uiExtensionProtocolName, state$1);\n })), (function (meta3dState) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n Curry._1(imguiRendererService.afterExec, undefined);\n Curry._1(imguiRendererService.render, undefined);\n return imguiRendererState;\n }), [\n api,\n imguiRendererExtensionProtocolName\n ]);\n }));\n}\n\nfunction _setElementFunc(state, elementName, elementFunc) {\n return {\n elementFuncMap: ImmutableHashMap$Meta3dCommonlib.set(state.elementFuncMap, elementName, elementFunc),\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction registerElement(state, param) {\n var elementName = param.elementName;\n return _markStateChange(show(_setElementExecOrder(_setElementState(_setElementFunc(_setCurrentElementName(state, elementName), elementName, param.elementFunc), elementName, param.elementState), elementName, param.execOrder), elementName), elementName);\n}\n\nfunction registerSkin(state, skinContribute) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: ImmutableHashMap$Meta3dCommonlib.set(state.skinContributeMap, skinContribute.skinName, skinContribute),\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction registerUIControl(state, uiControlContribute) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: ImmutableHashMap$Meta3dCommonlib.set(state.uiControlContributeMap, uiControlContribute.uiControlName, uiControlContribute),\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction registerInput(state, inputContribute) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: ImmutableHashMap$Meta3dCommonlib.set(state.inputContributeMap, inputContribute.inputName, inputContribute),\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction getSkin(state, skinName) {\n return ImmutableHashMap$Meta3dCommonlib.getNullable(state.skinContributeMap, skinName);\n}\n\nfunction _getUIControlExn(state, uiControlName) {\n return ImmutableHashMap$Meta3dCommonlib.getExn(state.uiControlContributeMap, uiControlName);\n}\n\nfunction getUIControlFuncExn(state, uiControlName) {\n return ImmutableHashMap$Meta3dCommonlib.getExn(state.uiControlContributeMap, uiControlName).func;\n}\n\nfunction getInputFunc(state, inputName) {\n return NullableSt$Meta3dCommonlib.map(ImmutableHashMap$Meta3dCommonlib.getNullable(state.inputContributeMap, inputName), (function (param) {\n return param.func;\n }));\n}\n\nfunction getUIControlState(state, uiControlName) {\n return ImmutableHashMap$Meta3dCommonlib.getNullable(state.uiControlStateMap, uiControlName);\n}\n\nfunction setUIControlState(state, uiControlName, uiControlState) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: ImmutableHashMap$Meta3dCommonlib.set(state.uiControlStateMap, uiControlName, uiControlState),\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction isStateChange(state, elementName) {\n return ImmutableHashMap$Meta3dCommonlib.getExn(state.isStateChangeMap, elementName);\n}\n\nfunction setStyle(meta3dState, data, style) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return imguiRendererService.setStyle(imguiRendererState, style);\n }), data);\n}\n\nfunction beginWindow(meta3dState, data, label) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n imguiRendererService.beginWindow(label);\n return imguiRendererState;\n }), data);\n}\n\nfunction endWindow(meta3dState, data) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n Curry._1(imguiRendererService.endWindow, undefined);\n return imguiRendererState;\n }), data);\n}\n\nfunction beginChild(meta3dState, data, label) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n imguiRendererService.beginChild(label);\n return imguiRendererState;\n }), data);\n}\n\nfunction endChild(meta3dState, data) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n Curry._1(imguiRendererService.endChild, undefined);\n return imguiRendererState;\n }), data);\n}\n\nfunction setNextWindowRect(meta3dState, data, rect) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n imguiRendererService.setNextWindowRect(rect);\n return imguiRendererState;\n }), data);\n}\n\nfunction getFBOTexture(state, textureID) {\n return ImmutableHashMap$Meta3dCommonlib.getNullable(state.fboTextureMap, textureID);\n}\n\nfunction setFBOTexture(state, textureID, texture) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: ImmutableHashMap$Meta3dCommonlib.set(state.fboTextureMap, textureID, texture)\n };\n}\n\nfunction addFBOTexture(meta3dState, data, texture, rect) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n imguiRendererService.addFBOTexture(texture, rect);\n return imguiRendererState;\n }), data);\n}\n\nfunction getWindowBarHeight(meta3dState, data) {\n return _invokeIMGUIRenderFuncReturnData(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return Curry._1(imguiRendererService.getWindowBarHeight, undefined);\n }), data);\n}\n\nfunction getContext(meta3dState, data) {\n return _invokeIMGUIRenderFuncReturnData(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return Curry._1(imguiRendererService.getContext, undefined);\n }), data);\n}\n\nfunction button(meta3dState, data, label, size) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.button(label, size)\n ];\n }), data);\n}\n\nfunction setCursorPos(meta3dState, data, pos) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n imguiRendererService.setCursorPos(pos);\n return imguiRendererState;\n }), data);\n}\n\nfunction loadImage(data, meta3dState, imageBase64Src) {\n return _invokeIMGUIRenderFuncReturnData(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return imguiRendererService.loadImage(imageBase64Src);\n }), data);\n}\n\nfunction asset(data, meta3dState, fileTexture, files, label, rect) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.asset(fileTexture, files, label, rect)\n ];\n }), data);\n}\n\nfunction handleDragDropTarget(data, meta3dState, type_) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.handleDragDropTarget(type_)\n ];\n }), data);\n}\n\nfunction menu(data, meta3dState, allLabels, windowName, rect) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.menu(allLabels, windowName, rect)\n ];\n }), data);\n}\n\nfunction tree(data, meta3dState, treeData, treeNodeLabel, lastTreeSelectedData, windowName, rect) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.tree(treeData, treeNodeLabel, lastTreeSelectedData, windowName, rect)\n ];\n }), data);\n}\n\nfunction inspector(data, meta3dState, gameObjectName, localPosition, localEulerAngles, localScale, windowName, rect) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.inspector(gameObjectName, localPosition, localEulerAngles, localScale, windowName, rect)\n ];\n }), data);\n}\n\nfunction switchButton(data, meta3dState, isRun, textures, size) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.switchButton(isRun, textures, size)\n ];\n }), data);\n}\n\nfunction imageButton(data, meta3dState, texture, size) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.imageButton(texture, size)\n ];\n }), data);\n}\n\nfunction clear(meta3dState, data, clearColor) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n imguiRendererService.clear(clearColor);\n return imguiRendererState;\n }), data);\n}\n\nfunction _getCurrentElementStateOption(state) {\n return OptionSt$Meta3dCommonlib.bind(state.currentElementName, (function (currentElementName) {\n return ImmutableHashMap$Meta3dCommonlib.get(state.elementStateMap, currentElementName);\n }));\n}\n\nfunction getCurrentElementState(state) {\n return getElementState(state, OptionSt$Meta3dCommonlib.getExn(state.currentElementName));\n}\n\nfunction setCurrentElementState(state, currentElementState) {\n return _setElementState(state, OptionSt$Meta3dCommonlib.getExn(state.currentElementName), currentElementState);\n}\n\nfunction init(meta3dState, param, isInitEvent, isDebug, canvas) {\n var imguiRendererExtensionProtocolName = param[1];\n var api = param[0];\n var uiExtensionProtocolName = \"meta3d-ui-protocol\";\n var uiState = api.getExtensionState(meta3dState, uiExtensionProtocolName);\n var elementState = _getCurrentElementStateOption(uiState);\n var meta3dState$1;\n if (elementState !== undefined) {\n var eventExtensionProtocolName = \"meta3d-event-protocol\";\n var eventService = api.getExtensionService(meta3dState, eventExtensionProtocolName);\n var eventState = api.getExtensionState(meta3dState, eventExtensionProtocolName);\n var elementState$1 = ArraySt$Meta3dCommonlib.reduceOneParam(Curry._1(eventService.getAllActionContributes, eventState), (function (elementState, param) {\n return ImmutableHashMap$Meta3dCommonlib.set(elementState, param[0], Curry._1(param[1].createState, meta3dState));\n }), Caml_option.valFromOption(elementState));\n var uiState$1 = setCurrentElementState(uiState, elementState$1);\n meta3dState$1 = api.setExtensionState(meta3dState, uiExtensionProtocolName, uiState$1);\n } else {\n meta3dState$1 = meta3dState;\n }\n var imguiRendererState = api.getExtensionState(meta3dState$1, imguiRendererExtensionProtocolName);\n var imguiRendererService = api.getExtensionService(meta3dState$1, imguiRendererExtensionProtocolName);\n return PromiseSt$Meta3dCommonlib.map(imguiRendererService.init(imguiRendererState, isInitEvent, isDebug, canvas), (function (imguiRendererState) {\n return api.setExtensionState(meta3dState$1, imguiRendererExtensionProtocolName, imguiRendererState);\n }));\n}\n\nfunction restore(api, currentMeta3dState, targetMeta3dState) {\n var eventExtensionProtocolName = \"meta3d-event-protocol\";\n var uiExtensionProtocolName = \"meta3d-ui-protocol\";\n var eventService = api.getExtensionService(targetMeta3dState, eventExtensionProtocolName);\n var eventState = api.getExtensionState(targetMeta3dState, eventExtensionProtocolName);\n var currentUIState = api.getExtensionState(currentMeta3dState, uiExtensionProtocolName);\n var currentElementState = NullableSt$Meta3dCommonlib.getExn(getElementState(currentUIState, OptionSt$Meta3dCommonlib.getExn(currentUIState.currentElementName)));\n var targetUIState = api.getExtensionState(targetMeta3dState, uiExtensionProtocolName);\n var targetElementState = ArraySt$Meta3dCommonlib.reduceOneParam(Curry._1(eventService.getAllActionContributes, eventState), (function (targetElementState, param) {\n var actionName = param[0];\n return NullableSt$Meta3dCommonlib.getWithDefault(NullableSt$Meta3dCommonlib.map(param[1].restore, (function (restore) {\n return ImmutableHashMap$Meta3dCommonlib.set(targetElementState, actionName, Curry._2(restore, ImmutableHashMap$Meta3dCommonlib.getExn(currentElementState, actionName), ImmutableHashMap$Meta3dCommonlib.getExn(targetElementState, actionName)));\n })), targetElementState);\n }), NullableSt$Meta3dCommonlib.getExn(getElementState(targetUIState, OptionSt$Meta3dCommonlib.getExn(targetUIState.currentElementName))));\n var targetUIState$1 = setCurrentElementState(targetUIState, targetElementState);\n return api.setExtensionState(targetMeta3dState, uiExtensionProtocolName, targetUIState$1);\n}\n\nfunction deepCopy(api, meta3dState) {\n var eventExtensionProtocolName = \"meta3d-event-protocol\";\n var uiExtensionProtocolName = \"meta3d-ui-protocol\";\n var eventService = api.getExtensionService(meta3dState, eventExtensionProtocolName);\n var eventState = api.getExtensionState(meta3dState, eventExtensionProtocolName);\n var uiState = api.getExtensionState(meta3dState, uiExtensionProtocolName);\n var elementState = ArraySt$Meta3dCommonlib.reduceOneParam(Curry._1(eventService.getAllActionContributes, eventState), (function (elementState, param) {\n var actionName = param[0];\n return NullableSt$Meta3dCommonlib.getWithDefault(NullableSt$Meta3dCommonlib.map(param[1].deepCopy, (function (deepCopy) {\n return ImmutableHashMap$Meta3dCommonlib.set(elementState, actionName, Curry._1(deepCopy, ImmutableHashMap$Meta3dCommonlib.getExn(elementState, actionName)));\n })), elementState);\n }), NullableSt$Meta3dCommonlib.getExn(getElementState(uiState, OptionSt$Meta3dCommonlib.getExn(uiState.currentElementName))));\n var uiState$1 = setCurrentElementState(uiState, elementState);\n return api.setExtensionState(meta3dState, uiExtensionProtocolName, uiState$1);\n}\n\nexports.hide = hide;\nexports.show = show;\nexports._markStateChange = _markStateChange;\nexports._markStateNotChange = _markStateNotChange;\nexports._markAllStateNotChange = _markAllStateNotChange;\nexports._getElementStateExn = _getElementStateExn;\nexports.getElementState = getElementState;\nexports._setElementState = _setElementState;\nexports._getElementExecOrderExn = _getElementExecOrderExn;\nexports._setElementExecOrder = _setElementExecOrder;\nexports._getCurrentElementName = _getCurrentElementName;\nexports._setCurrentElementName = _setCurrentElementName;\nexports.updateElementState = updateElementState;\nexports._exec = _exec;\nexports._invokeIMGUIRenderFunc = _invokeIMGUIRenderFunc;\nexports._invokeIMGUIRenderFuncWithParam = _invokeIMGUIRenderFuncWithParam;\nexports._invokeIMGUIRenderFuncReturnData = _invokeIMGUIRenderFuncReturnData;\nexports.render = render;\nexports._setElementFunc = _setElementFunc;\nexports.registerElement = registerElement;\nexports.registerSkin = registerSkin;\nexports.registerUIControl = registerUIControl;\nexports.registerInput = registerInput;\nexports.getSkin = getSkin;\nexports._getUIControlExn = _getUIControlExn;\nexports.getUIControlFuncExn = getUIControlFuncExn;\nexports.getInputFunc = getInputFunc;\nexports.getUIControlState = getUIControlState;\nexports.setUIControlState = setUIControlState;\nexports.isStateChange = isStateChange;\nexports.setStyle = setStyle;\nexports.beginWindow = beginWindow;\nexports.endWindow = endWindow;\nexports.beginChild = beginChild;\nexports.endChild = endChild;\nexports.setNextWindowRect = setNextWindowRect;\nexports.getFBOTexture = getFBOTexture;\nexports.setFBOTexture = setFBOTexture;\nexports.addFBOTexture = addFBOTexture;\nexports.getWindowBarHeight = getWindowBarHeight;\nexports.getContext = getContext;\nexports.button = button;\nexports.setCursorPos = setCursorPos;\nexports.loadImage = loadImage;\nexports.asset = asset;\nexports.handleDragDropTarget = handleDragDropTarget;\nexports.menu = menu;\nexports.tree = tree;\nexports.inspector = inspector;\nexports.switchButton = switchButton;\nexports.imageButton = imageButton;\nexports.clear = clear;\nexports._getCurrentElementStateOption = _getCurrentElementStateOption;\nexports.getCurrentElementState = getCurrentElementState;\nexports.setCurrentElementState = setCurrentElementState;\nexports.init = init;\nexports.restore = restore;\nexports.deepCopy = deepCopy;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/./lib/js/src/UIManager.bs.js?"); +eval("\n\nvar Curry = __webpack_require__(/*! rescript/lib/js/curry.js */ \"../../../../../node_modules/rescript/lib/js/curry.js\");\nvar Caml_obj = __webpack_require__(/*! rescript/lib/js/caml_obj.js */ \"../../../../../node_modules/rescript/lib/js/caml_obj.js\");\nvar Js_array = __webpack_require__(/*! rescript/lib/js/js_array.js */ \"../../../../../node_modules/rescript/lib/js/js_array.js\");\nvar Caml_option = __webpack_require__(/*! rescript/lib/js/caml_option.js */ \"../../../../../node_modules/rescript/lib/js/caml_option.js\");\nvar ArraySt$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/ArraySt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/ArraySt.bs.js\");\nvar OptionSt$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/OptionSt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/OptionSt.bs.js\");\nvar PromiseSt$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/PromiseSt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/PromiseSt.bs.js\");\nvar NullableSt$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js\");\nvar ImmutableHashMap$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/hash_map/ImmutableHashMap.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/ImmutableHashMap.bs.js\");\n\nfunction hide(state, elementName) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: ImmutableHashMap$Meta3dCommonlib.set(state.isShowMap, elementName, false),\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction show(state, elementName) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: ImmutableHashMap$Meta3dCommonlib.set(state.isShowMap, elementName, true),\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction _markStateChange(state, elementName) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: ImmutableHashMap$Meta3dCommonlib.set(state.isStateChangeMap, elementName, true),\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction _markStateNotChange(state, elementName) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: ImmutableHashMap$Meta3dCommonlib.set(state.isStateChangeMap, elementName, false),\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction _markAllStateNotChange(state, needMarkStateNotChangeIds) {\n return ArraySt$Meta3dCommonlib.reduceOneParam(needMarkStateNotChangeIds, _markStateNotChange, state);\n}\n\nfunction _getElementStateExn(param, elementName) {\n return ImmutableHashMap$Meta3dCommonlib.getExn(param.elementStateMap, elementName);\n}\n\nfunction getElementState(param, elementName) {\n return ImmutableHashMap$Meta3dCommonlib.getNullable(param.elementStateMap, elementName);\n}\n\nfunction _setElementState(state, elementName, elementState) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: ImmutableHashMap$Meta3dCommonlib.set(state.elementStateMap, elementName, elementState),\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction _getElementExecOrderExn(state, elementName) {\n return ImmutableHashMap$Meta3dCommonlib.getExn(state.elementExecOrderMap, elementName);\n}\n\nfunction _setElementExecOrder(state, elementName, execOrder) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: ImmutableHashMap$Meta3dCommonlib.set(state.elementExecOrderMap, elementName, execOrder),\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction _getCurrentElementName(state) {\n return OptionSt$Meta3dCommonlib.getExn(state.currentElementName);\n}\n\nfunction _setCurrentElementName(state, elementName) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: elementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction updateElementState(state, updateElementStateFunc) {\n var elementName = OptionSt$Meta3dCommonlib.getExn(state.currentElementName);\n var oldElementState = _getElementStateExn(state, elementName);\n var newElementState = Curry._1(updateElementStateFunc, oldElementState);\n if (Caml_obj.notequal(oldElementState, newElementState)) {\n return _setElementState(_markStateChange(state, elementName), elementName, newElementState);\n } else {\n return _markStateNotChange(state, elementName);\n }\n}\n\nfunction _exec(meta3dState, state) {\n var elementFuncMap = state.elementFuncMap;\n var __x = ImmutableHashMap$Meta3dCommonlib.entries(state.isShowMap);\n return ArraySt$Meta3dCommonlib.traverseReducePromiseM(Js_array.sortInPlaceWith((function (param, param$1) {\n return ImmutableHashMap$Meta3dCommonlib.getExn(state.elementExecOrderMap, param[0]) - ImmutableHashMap$Meta3dCommonlib.getExn(state.elementExecOrderMap, param$1[0]) | 0;\n }), __x), (function (param, param$1) {\n var needMarkStateNotChangeIds = param[1];\n var meta3dState = param[0];\n if (!param$1[1]) {\n return Promise.resolve([\n meta3dState,\n needMarkStateNotChangeIds\n ]);\n }\n var elementName = param$1[0];\n var elementFunc = ImmutableHashMap$Meta3dCommonlib.getExn(elementFuncMap, elementName);\n return PromiseSt$Meta3dCommonlib.map(elementFunc(meta3dState, _getElementStateExn(state, elementName)), (function (meta3dState) {\n return [\n meta3dState,\n ArraySt$Meta3dCommonlib.push(needMarkStateNotChangeIds, elementName)\n ];\n }));\n }), [\n meta3dState,\n []\n ]);\n}\n\nfunction _invokeIMGUIRenderFunc(meta3dState, invokeFunc, param) {\n var imguiRendererExtensionProtocolName = param[1];\n var api = param[0];\n var imguiRendererState = api.getExtensionState(meta3dState, imguiRendererExtensionProtocolName);\n var imguiRendererService = api.getExtensionService(meta3dState, imguiRendererExtensionProtocolName);\n var imguiRendererState$1 = invokeFunc(imguiRendererState, imguiRendererService);\n return api.setExtensionState(meta3dState, imguiRendererExtensionProtocolName, imguiRendererState$1);\n}\n\nfunction _invokeIMGUIRenderFuncWithParam(meta3dState, invokeFunc, param) {\n var imguiRendererExtensionProtocolName = param[1];\n var api = param[0];\n var imguiRendererState = api.getExtensionState(meta3dState, imguiRendererExtensionProtocolName);\n var imguiRendererService = api.getExtensionService(meta3dState, imguiRendererExtensionProtocolName);\n var match = invokeFunc(imguiRendererState, imguiRendererService);\n var meta3dState$1 = api.setExtensionState(meta3dState, imguiRendererExtensionProtocolName, match[0]);\n return [\n meta3dState$1,\n match[1]\n ];\n}\n\nfunction _invokeIMGUIRenderFuncReturnData(meta3dState, invokeFunc, param) {\n var imguiRendererExtensionProtocolName = param[1];\n var api = param[0];\n var imguiRendererState = api.getExtensionState(meta3dState, imguiRendererExtensionProtocolName);\n var imguiRendererService = api.getExtensionService(meta3dState, imguiRendererExtensionProtocolName);\n return invokeFunc(imguiRendererState, imguiRendererService);\n}\n\nfunction render(api, meta3dState, param, time) {\n var imguiRendererExtensionProtocolName = param[1];\n var uiExtensionProtocolName = param[0];\n var state = api.getExtensionState(meta3dState, uiExtensionProtocolName);\n var meta3dState$1 = api.setExtensionState(meta3dState, uiExtensionProtocolName, state);\n var meta3dState$2 = _invokeIMGUIRenderFunc(meta3dState$1, (function (imguiRendererState, imguiRendererService) {\n return imguiRendererService.beforeExec(imguiRendererState, time);\n }), [\n api,\n imguiRendererExtensionProtocolName\n ]);\n return PromiseSt$Meta3dCommonlib.map(PromiseSt$Meta3dCommonlib.map(_exec(meta3dState$2, state), (function (param) {\n var meta3dState = param[0];\n var state = api.getExtensionState(meta3dState, uiExtensionProtocolName);\n var state$1 = _markAllStateNotChange(state, param[1]);\n return api.setExtensionState(meta3dState, uiExtensionProtocolName, state$1);\n })), (function (meta3dState) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n Curry._1(imguiRendererService.afterExec, undefined);\n Curry._1(imguiRendererService.render, undefined);\n return imguiRendererState;\n }), [\n api,\n imguiRendererExtensionProtocolName\n ]);\n }));\n}\n\nfunction _setElementFunc(state, elementName, elementFunc) {\n return {\n elementFuncMap: ImmutableHashMap$Meta3dCommonlib.set(state.elementFuncMap, elementName, elementFunc),\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction registerElement(state, param) {\n var elementName = param.elementName;\n return _markStateChange(show(_setElementExecOrder(_setElementState(_setElementFunc(_setCurrentElementName(state, elementName), elementName, param.elementFunc), elementName, param.elementState), elementName, param.execOrder), elementName), elementName);\n}\n\nfunction registerSkin(state, skinContribute) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: ImmutableHashMap$Meta3dCommonlib.set(state.skinContributeMap, skinContribute.skinName, skinContribute),\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction registerUIControl(state, uiControlContribute) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: ImmutableHashMap$Meta3dCommonlib.set(state.uiControlContributeMap, uiControlContribute.uiControlName, uiControlContribute),\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction registerInput(state, inputContribute) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: ImmutableHashMap$Meta3dCommonlib.set(state.inputContributeMap, inputContribute.inputName, inputContribute),\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction getSkin(state, skinName) {\n return ImmutableHashMap$Meta3dCommonlib.getNullable(state.skinContributeMap, skinName);\n}\n\nfunction _getUIControlExn(state, uiControlName) {\n return ImmutableHashMap$Meta3dCommonlib.getExn(state.uiControlContributeMap, uiControlName);\n}\n\nfunction getUIControlFuncExn(state, uiControlName) {\n return ImmutableHashMap$Meta3dCommonlib.getExn(state.uiControlContributeMap, uiControlName).func;\n}\n\nfunction getInputFunc(state, inputName) {\n return NullableSt$Meta3dCommonlib.map(ImmutableHashMap$Meta3dCommonlib.getNullable(state.inputContributeMap, inputName), (function (param) {\n return param.func;\n }));\n}\n\nfunction getUIControlState(state, uiControlName) {\n return ImmutableHashMap$Meta3dCommonlib.getNullable(state.uiControlStateMap, uiControlName);\n}\n\nfunction setUIControlState(state, uiControlName, uiControlState) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: ImmutableHashMap$Meta3dCommonlib.set(state.uiControlStateMap, uiControlName, uiControlState),\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: state.fboTextureMap\n };\n}\n\nfunction isStateChange(state, elementName) {\n return ImmutableHashMap$Meta3dCommonlib.getExn(state.isStateChangeMap, elementName);\n}\n\nfunction setStyle(meta3dState, data, style) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return imguiRendererService.setStyle(imguiRendererState, style);\n }), data);\n}\n\nfunction beginWindow(meta3dState, data, label, flags) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n imguiRendererService.beginWindow(label, flags);\n return imguiRendererState;\n }), data);\n}\n\nfunction endWindow(meta3dState, data) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n Curry._1(imguiRendererService.endWindow, undefined);\n return imguiRendererState;\n }), data);\n}\n\nfunction beginChild(meta3dState, data, label) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n imguiRendererService.beginChild(label);\n return imguiRendererState;\n }), data);\n}\n\nfunction endChild(meta3dState, data) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n Curry._1(imguiRendererService.endChild, undefined);\n return imguiRendererState;\n }), data);\n}\n\nfunction setNextWindowRect(meta3dState, data, rect) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n imguiRendererService.setNextWindowRect(rect);\n return imguiRendererState;\n }), data);\n}\n\nfunction getFBOTexture(state, textureID) {\n return ImmutableHashMap$Meta3dCommonlib.getNullable(state.fboTextureMap, textureID);\n}\n\nfunction setFBOTexture(state, textureID, texture) {\n return {\n elementFuncMap: state.elementFuncMap,\n elementStateMap: state.elementStateMap,\n elementExecOrderMap: state.elementExecOrderMap,\n isShowMap: state.isShowMap,\n isStateChangeMap: state.isStateChangeMap,\n skinContributeMap: state.skinContributeMap,\n uiControlContributeMap: state.uiControlContributeMap,\n uiControlStateMap: state.uiControlStateMap,\n inputContributeMap: state.inputContributeMap,\n currentElementName: state.currentElementName,\n fboTextureMap: ImmutableHashMap$Meta3dCommonlib.set(state.fboTextureMap, textureID, texture)\n };\n}\n\nfunction addFBOTexture(meta3dState, data, texture, rect) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n imguiRendererService.addFBOTexture(texture, rect);\n return imguiRendererState;\n }), data);\n}\n\nfunction getWindowBarHeight(meta3dState, data) {\n return _invokeIMGUIRenderFuncReturnData(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return Curry._1(imguiRendererService.getWindowBarHeight, undefined);\n }), data);\n}\n\nfunction getContext(meta3dState, data) {\n return _invokeIMGUIRenderFuncReturnData(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return Curry._1(imguiRendererService.getContext, undefined);\n }), data);\n}\n\nfunction button(meta3dState, data, label, size) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.button(label, size)\n ];\n }), data);\n}\n\nfunction setCursorPos(meta3dState, data, pos) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n imguiRendererService.setCursorPos(pos);\n return imguiRendererState;\n }), data);\n}\n\nfunction loadImage(data, meta3dState, imageBase64Src) {\n return _invokeIMGUIRenderFuncReturnData(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return imguiRendererService.loadImage(imageBase64Src);\n }), data);\n}\n\nfunction asset(data, meta3dState, fileTexture, files, label, rect) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.asset(fileTexture, files, label, rect)\n ];\n }), data);\n}\n\nfunction handleDragDropTarget(data, meta3dState, type_) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.handleDragDropTarget(type_)\n ];\n }), data);\n}\n\nfunction menu(data, meta3dState, allLabels, windowName, rect) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.menu(allLabels, windowName, rect)\n ];\n }), data);\n}\n\nfunction tree(data, meta3dState, treeData, treeNodeLabel, lastTreeSelectedData, windowName, rect) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.tree(treeData, treeNodeLabel, lastTreeSelectedData, windowName, rect)\n ];\n }), data);\n}\n\nfunction switchButton(data, meta3dState, isRun, textures, size) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.switchButton(isRun, textures, size)\n ];\n }), data);\n}\n\nfunction imageButton(data, meta3dState, texture, size) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.imageButton(texture, size)\n ];\n }), data);\n}\n\nfunction inputText(data, meta3dState, label, value, maxLength, width) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.inputText(label, value, maxLength, width)\n ];\n }), data);\n}\n\nfunction inputFloat3(data, meta3dState, label, value, step, stepFast, width) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.inputFloat3(label, value, step, stepFast, width)\n ];\n }), data);\n}\n\nfunction collapsing(data, meta3dState, label, isOpen, cond) {\n return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n return [\n imguiRendererState,\n imguiRendererService.collapsing(label, isOpen, cond)\n ];\n }), data);\n}\n\nfunction clear(meta3dState, data, clearColor) {\n return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n imguiRendererService.clear(clearColor);\n return imguiRendererState;\n }), data);\n}\n\nfunction _getCurrentElementStateOption(state) {\n return OptionSt$Meta3dCommonlib.bind(state.currentElementName, (function (currentElementName) {\n return ImmutableHashMap$Meta3dCommonlib.get(state.elementStateMap, currentElementName);\n }));\n}\n\nfunction getCurrentElementState(state) {\n return getElementState(state, OptionSt$Meta3dCommonlib.getExn(state.currentElementName));\n}\n\nfunction setCurrentElementState(state, currentElementState) {\n return _setElementState(state, OptionSt$Meta3dCommonlib.getExn(state.currentElementName), currentElementState);\n}\n\nfunction init(meta3dState, param, isInitEvent, isDebug, canvas) {\n var imguiRendererExtensionProtocolName = param[1];\n var api = param[0];\n var uiExtensionProtocolName = \"meta3d-ui-protocol\";\n var uiState = api.getExtensionState(meta3dState, uiExtensionProtocolName);\n var elementState = _getCurrentElementStateOption(uiState);\n var meta3dState$1;\n if (elementState !== undefined) {\n var eventExtensionProtocolName = \"meta3d-event-protocol\";\n var eventService = api.getExtensionService(meta3dState, eventExtensionProtocolName);\n var eventState = api.getExtensionState(meta3dState, eventExtensionProtocolName);\n var elementState$1 = ArraySt$Meta3dCommonlib.reduceOneParam(Curry._1(eventService.getAllActionContributes, eventState), (function (elementState, param) {\n return ImmutableHashMap$Meta3dCommonlib.set(elementState, param[0], Curry._1(param[1].createState, meta3dState));\n }), Caml_option.valFromOption(elementState));\n var uiState$1 = setCurrentElementState(uiState, elementState$1);\n meta3dState$1 = api.setExtensionState(meta3dState, uiExtensionProtocolName, uiState$1);\n } else {\n meta3dState$1 = meta3dState;\n }\n var imguiRendererState = api.getExtensionState(meta3dState$1, imguiRendererExtensionProtocolName);\n var imguiRendererService = api.getExtensionService(meta3dState$1, imguiRendererExtensionProtocolName);\n return PromiseSt$Meta3dCommonlib.map(imguiRendererService.init(imguiRendererState, isInitEvent, isDebug, canvas), (function (imguiRendererState) {\n return api.setExtensionState(meta3dState$1, imguiRendererExtensionProtocolName, imguiRendererState);\n }));\n}\n\nfunction restore(api, currentMeta3dState, targetMeta3dState) {\n var eventExtensionProtocolName = \"meta3d-event-protocol\";\n var uiExtensionProtocolName = \"meta3d-ui-protocol\";\n var eventService = api.getExtensionService(targetMeta3dState, eventExtensionProtocolName);\n var eventState = api.getExtensionState(targetMeta3dState, eventExtensionProtocolName);\n var currentUIState = api.getExtensionState(currentMeta3dState, uiExtensionProtocolName);\n var currentElementState = NullableSt$Meta3dCommonlib.getExn(getElementState(currentUIState, OptionSt$Meta3dCommonlib.getExn(currentUIState.currentElementName)));\n var targetUIState = api.getExtensionState(targetMeta3dState, uiExtensionProtocolName);\n var targetElementState = ArraySt$Meta3dCommonlib.reduceOneParam(Curry._1(eventService.getAllActionContributes, eventState), (function (targetElementState, param) {\n var actionName = param[0];\n return NullableSt$Meta3dCommonlib.getWithDefault(NullableSt$Meta3dCommonlib.map(param[1].restore, (function (restore) {\n return ImmutableHashMap$Meta3dCommonlib.set(targetElementState, actionName, Curry._2(restore, ImmutableHashMap$Meta3dCommonlib.getExn(currentElementState, actionName), ImmutableHashMap$Meta3dCommonlib.getExn(targetElementState, actionName)));\n })), targetElementState);\n }), NullableSt$Meta3dCommonlib.getExn(getElementState(targetUIState, OptionSt$Meta3dCommonlib.getExn(targetUIState.currentElementName))));\n var targetUIState$1 = setCurrentElementState(targetUIState, targetElementState);\n return api.setExtensionState(targetMeta3dState, uiExtensionProtocolName, targetUIState$1);\n}\n\nfunction deepCopy(api, meta3dState) {\n var eventExtensionProtocolName = \"meta3d-event-protocol\";\n var uiExtensionProtocolName = \"meta3d-ui-protocol\";\n var eventService = api.getExtensionService(meta3dState, eventExtensionProtocolName);\n var eventState = api.getExtensionState(meta3dState, eventExtensionProtocolName);\n var uiState = api.getExtensionState(meta3dState, uiExtensionProtocolName);\n var elementState = ArraySt$Meta3dCommonlib.reduceOneParam(Curry._1(eventService.getAllActionContributes, eventState), (function (elementState, param) {\n var actionName = param[0];\n return NullableSt$Meta3dCommonlib.getWithDefault(NullableSt$Meta3dCommonlib.map(param[1].deepCopy, (function (deepCopy) {\n return ImmutableHashMap$Meta3dCommonlib.set(elementState, actionName, Curry._1(deepCopy, ImmutableHashMap$Meta3dCommonlib.getExn(elementState, actionName)));\n })), elementState);\n }), NullableSt$Meta3dCommonlib.getExn(getElementState(uiState, OptionSt$Meta3dCommonlib.getExn(uiState.currentElementName))));\n var uiState$1 = setCurrentElementState(uiState, elementState);\n return api.setExtensionState(meta3dState, uiExtensionProtocolName, uiState$1);\n}\n\nexports.hide = hide;\nexports.show = show;\nexports._markStateChange = _markStateChange;\nexports._markStateNotChange = _markStateNotChange;\nexports._markAllStateNotChange = _markAllStateNotChange;\nexports._getElementStateExn = _getElementStateExn;\nexports.getElementState = getElementState;\nexports._setElementState = _setElementState;\nexports._getElementExecOrderExn = _getElementExecOrderExn;\nexports._setElementExecOrder = _setElementExecOrder;\nexports._getCurrentElementName = _getCurrentElementName;\nexports._setCurrentElementName = _setCurrentElementName;\nexports.updateElementState = updateElementState;\nexports._exec = _exec;\nexports._invokeIMGUIRenderFunc = _invokeIMGUIRenderFunc;\nexports._invokeIMGUIRenderFuncWithParam = _invokeIMGUIRenderFuncWithParam;\nexports._invokeIMGUIRenderFuncReturnData = _invokeIMGUIRenderFuncReturnData;\nexports.render = render;\nexports._setElementFunc = _setElementFunc;\nexports.registerElement = registerElement;\nexports.registerSkin = registerSkin;\nexports.registerUIControl = registerUIControl;\nexports.registerInput = registerInput;\nexports.getSkin = getSkin;\nexports._getUIControlExn = _getUIControlExn;\nexports.getUIControlFuncExn = getUIControlFuncExn;\nexports.getInputFunc = getInputFunc;\nexports.getUIControlState = getUIControlState;\nexports.setUIControlState = setUIControlState;\nexports.isStateChange = isStateChange;\nexports.setStyle = setStyle;\nexports.beginWindow = beginWindow;\nexports.endWindow = endWindow;\nexports.beginChild = beginChild;\nexports.endChild = endChild;\nexports.setNextWindowRect = setNextWindowRect;\nexports.getFBOTexture = getFBOTexture;\nexports.setFBOTexture = setFBOTexture;\nexports.addFBOTexture = addFBOTexture;\nexports.getWindowBarHeight = getWindowBarHeight;\nexports.getContext = getContext;\nexports.button = button;\nexports.setCursorPos = setCursorPos;\nexports.loadImage = loadImage;\nexports.asset = asset;\nexports.handleDragDropTarget = handleDragDropTarget;\nexports.menu = menu;\nexports.tree = tree;\nexports.switchButton = switchButton;\nexports.imageButton = imageButton;\nexports.inputText = inputText;\nexports.inputFloat3 = inputFloat3;\nexports.collapsing = collapsing;\nexports.clear = clear;\nexports._getCurrentElementStateOption = _getCurrentElementStateOption;\nexports.getCurrentElementState = getCurrentElementState;\nexports.setCurrentElementState = setCurrentElementState;\nexports.init = init;\nexports.restore = restore;\nexports.deepCopy = deepCopy;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/./lib/js/src/UIManager.bs.js?"); /***/ }) diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/src/Main.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/src/Main.bs.js index db85a9eff..ae72a593b 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/src/Main.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/src/Main.bs.js @@ -37,6 +37,14 @@ function getExtensionService(api) { api, "meta3d-imgui-renderer-protocol" ]; + var partial_arg$8 = [ + api, + "meta3d-imgui-renderer-protocol" + ]; + var partial_arg$9 = [ + api, + "meta3d-imgui-renderer-protocol" + ]; return { registerElement: (function (meta3dState, elementContribute) { return api.setExtensionState(meta3dState, "meta3d-ui-protocol", UIManager$Meta3dUi.registerElement(api.getExtensionState(meta3dState, "meta3d-ui-protocol"), elementContribute)); @@ -89,11 +97,11 @@ function getExtensionService(api) { "meta3d-imgui-renderer-protocol" ], style); }), - beginWindow: (function (meta3dState, label) { + beginWindow: (function (meta3dState, label, flags) { return UIManager$Meta3dUi.beginWindow(meta3dState, [ api, "meta3d-imgui-renderer-protocol" - ], label); + ], label, flags); }), endWindow: (function (meta3dState) { return UIManager$Meta3dUi.endWindow(meta3dState, [ @@ -170,14 +178,20 @@ function getExtensionService(api) { tree: (function (param, param$1, param$2, param$3, param$4, param$5) { return UIManager$Meta3dUi.tree(partial_arg$4, param, param$1, param$2, param$3, param$4, param$5); }), - inspector: (function (param, param$1, param$2, param$3, param$4, param$5, param$6) { - return UIManager$Meta3dUi.inspector(partial_arg$5, param, param$1, param$2, param$3, param$4, param$5, param$6); - }), switchButton: (function (param, param$1, param$2, param$3) { - return UIManager$Meta3dUi.switchButton(partial_arg$6, param, param$1, param$2, param$3); + return UIManager$Meta3dUi.switchButton(partial_arg$5, param, param$1, param$2, param$3); }), imageButton: (function (param, param$1, param$2) { - return UIManager$Meta3dUi.imageButton(partial_arg$7, param, param$1, param$2); + return UIManager$Meta3dUi.imageButton(partial_arg$6, param, param$1, param$2); + }), + inputText: (function (param, param$1, param$2, param$3, param$4) { + return UIManager$Meta3dUi.inputText(partial_arg$7, param, param$1, param$2, param$3, param$4); + }), + inputFloat3: (function (param, param$1, param$2, param$3, param$4, param$5) { + return UIManager$Meta3dUi.inputFloat3(partial_arg$8, param, param$1, param$2, param$3, param$4, param$5); + }), + collapsing: (function (param, param$1, param$2, param$3) { + return UIManager$Meta3dUi.collapsing(partial_arg$9, param, param$1, param$2, param$3); }), init: UIManager$Meta3dUi.init, clear: UIManager$Meta3dUi.clear, diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/src/UIManager.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/src/UIManager.bs.js index cefb3e32f..6651f3060 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/src/UIManager.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/src/UIManager.bs.js @@ -356,9 +356,9 @@ function setStyle(meta3dState, data, style) { }), data); } -function beginWindow(meta3dState, data, label) { +function beginWindow(meta3dState, data, label, flags) { return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) { - imguiRendererService.beginWindow(label); + imguiRendererService.beginWindow(label, flags); return imguiRendererState; }), data); } @@ -488,29 +488,47 @@ function tree(data, meta3dState, treeData, treeNodeLabel, lastTreeSelectedData, }), data); } -function inspector(data, meta3dState, gameObjectName, localPosition, localEulerAngles, localScale, windowName, rect) { +function switchButton(data, meta3dState, isRun, textures, size) { return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) { return [ imguiRendererState, - imguiRendererService.inspector(gameObjectName, localPosition, localEulerAngles, localScale, windowName, rect) + imguiRendererService.switchButton(isRun, textures, size) ]; }), data); } -function switchButton(data, meta3dState, isRun, textures, size) { +function imageButton(data, meta3dState, texture, size) { return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) { return [ imguiRendererState, - imguiRendererService.switchButton(isRun, textures, size) + imguiRendererService.imageButton(texture, size) ]; }), data); } -function imageButton(data, meta3dState, texture, size) { +function inputText(data, meta3dState, label, value, maxLength, width) { return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) { return [ imguiRendererState, - imguiRendererService.imageButton(texture, size) + imguiRendererService.inputText(label, value, maxLength, width) + ]; + }), data); +} + +function inputFloat3(data, meta3dState, label, value, step, stepFast, width) { + return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) { + return [ + imguiRendererState, + imguiRendererService.inputFloat3(label, value, step, stepFast, width) + ]; + }), data); +} + +function collapsing(data, meta3dState, label, isOpen, cond) { + return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) { + return [ + imguiRendererState, + imguiRendererService.collapsing(label, isOpen, cond) ]; }), data); } @@ -645,9 +663,11 @@ export { handleDragDropTarget , menu , tree , - inspector , switchButton , imageButton , + inputText , + inputFloat3 , + collapsing , clear , _getCurrentElementStateOption , getCurrentElementState , diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/begin_window.steps.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/begin_window.steps.bs.js index 21b261e6d..66df596bc 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/begin_window.steps.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/begin_window.steps.bs.js @@ -46,7 +46,7 @@ JestCucumber.defineFeature(feature, (function (test) { })); Curry._2(and, "prepare imgui renderer service", (function (param) { beginWindowStub.contents = Sinon.createEmptyStub(sandbox.contents); - imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, beginWindowStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, beginWindowStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); })); Curry._2(and, "prepare api", (function (param) { var __x = Sinon.createEmptyStub(sandbox.contents); @@ -58,7 +58,7 @@ JestCucumber.defineFeature(feature, (function (test) { label.contents = "Window"; })); Curry._2(param.when, "beginWindow", (function (param) { - newMeta3dState.contents = MainTool$Meta3dUi.beginWindow(sandbox, label.contents, getExtensionServiceStub.contents, undefined, undefined, Caml_option.some(getExtensionStateStub.contents), Caml_option.some(setExtensionStateStub.contents), undefined, undefined, undefined, imguiRendererExtensionProtocolName, 22, undefined); + newMeta3dState.contents = MainTool$Meta3dUi.beginWindow(sandbox, label.contents, getExtensionServiceStub.contents, undefined, undefined, undefined, Caml_option.some(getExtensionStateStub.contents), Caml_option.some(setExtensionStateStub.contents), undefined, undefined, undefined, imguiRendererExtensionProtocolName, 22, undefined); })); Curry._2(param.then, "invoke imgui renderer's beginWindow", (function (param) { Operators$Meta3dBsJestCucumber.$eq(expect([ diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/button.steps.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/button.steps.bs.js index af83d415c..33bdf0e24 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/button.steps.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/button.steps.bs.js @@ -52,7 +52,7 @@ JestCucumber.defineFeature(feature, (function (test) { })); Curry._2(and, "prepare imgui renderer service", (function (param) { buttonStub.contents = Sinon.returns(true, Sinon.createEmptyStub(sandbox.contents)); - imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, buttonStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, buttonStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); })); Curry._2(and, "prepare api", (function (param) { var __x = Sinon.createEmptyStub(sandbox.contents); diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/clear.steps.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/clear.steps.bs.js index f59fa107b..ada11243f 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/clear.steps.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/clear.steps.bs.js @@ -42,7 +42,7 @@ JestCucumber.defineFeature(feature, (function (test) { })); Curry._2(and, "prepare imgui renderer service", (function (param) { clearStub.contents = Sinon.createEmptyStub(sandbox.contents); - imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, clearStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, clearStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); })); Curry._2(and, "prepare api", (function (param) { var __x = Sinon.createEmptyStub(sandbox.contents); diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/context.steps.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/context.steps.bs.js index 4e6aaa8ce..f5a14f581 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/context.steps.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/context.steps.bs.js @@ -41,7 +41,7 @@ JestCucumber.defineFeature(feature, (function (test) { }; var __x = Sinon.createEmptyStub(sandbox.contents); getContextStub.contents = Sinon.returns(context.contents, __x); - imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, getContextStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, getContextStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); })); Curry._2(and, "prepare api", (function (param) { var __x = Sinon.createEmptyStub(sandbox.contents); diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/fbo_texture.steps.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/fbo_texture.steps.bs.js index 6b3bacefd..8d2118015 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/fbo_texture.steps.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/fbo_texture.steps.bs.js @@ -63,7 +63,7 @@ JestCucumber.defineFeature(feature, (function (test) { })); Curry._2(and, "prepare imgui renderer service", (function (param) { addFBOTextureStub.contents = Sinon.createEmptyStub(sandbox.contents); - imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, addFBOTextureStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, addFBOTextureStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); })); Curry._2(and, "prepare api", (function (param) { var __x = Sinon.createEmptyStub(sandbox.contents); diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/render.steps.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/render.steps.bs.js index 227cac4ac..44bb7def3 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/render.steps.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/step-definitions/render.steps.bs.js @@ -90,7 +90,7 @@ JestCucumber.defineFeature(feature, (function (test) { Curry._2(and, "prepare imgui renderer service", (function (param) { beforeExecStub.contents = Sinon.returns(13, Sinon.createEmptyStub(sandbox.contents)); afterExecStub.contents = Sinon.createEmptyStub(sandbox.contents); - imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, beforeExecStub.contents, afterExecStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, beforeExecStub.contents, afterExecStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); })); Curry._2(and, "register element func1 with exec order=1", (function (param) { state.contents = MainTool$Meta3dUi.createState(undefined); @@ -187,7 +187,7 @@ JestCucumber.defineFeature(feature, (function (test) { _prepare(param.given); Curry._2(and, "prepare imgui renderer service", (function (param) { renderStub.contents = Sinon.createEmptyStub(sandbox.contents); - imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, renderStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, renderStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); })); Curry._2(and, "prepare api", (function (param) { var __x = Sinon.createEmptyStub(sandbox.contents); diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/tool/ImguiRendererServiceTool.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/tool/ImguiRendererServiceTool.bs.js index 05602d9f7..4dc5696ba 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/tool/ImguiRendererServiceTool.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/tool/ImguiRendererServiceTool.bs.js @@ -3,7 +3,7 @@ import * as Sinon from "../../../../../../../../../node_modules/meta3d-bs-sinon/lib/es6_global/src/sinon.bs.js"; import * as Caml_option from "../../../../../../../../../node_modules/rescript/lib/es6/caml_option.js"; -function buildService(sandbox, initOpt, clearOpt, renderOpt, beforeExecOpt, afterExecOpt, setStyleOpt, beginWindowOpt, endWindowOpt, beginChildOpt, endChildOpt, setNextWindowRectOpt, addFBOTextureOpt, getWindowBarHeightOpt, getContextOpt, buttonOpt, setCursorPosOpt, loadImageOpt, assetOpt, handleDragDropTargetOpt, menuOpt, treeOpt, inspectorOpt, switchButtonOpt, imageButtonOpt, param) { +function buildService(sandbox, initOpt, clearOpt, renderOpt, beforeExecOpt, afterExecOpt, setStyleOpt, beginWindowOpt, endWindowOpt, beginChildOpt, endChildOpt, setNextWindowRectOpt, addFBOTextureOpt, getWindowBarHeightOpt, getContextOpt, buttonOpt, setCursorPosOpt, loadImageOpt, assetOpt, handleDragDropTargetOpt, menuOpt, treeOpt, inspectorOpt, switchButtonOpt, imageButtonOpt, inputTextOpt, inputFloat3Opt, collapsingOpt, param) { var init = initOpt !== undefined ? initOpt : Sinon.createEmptyStub(sandbox.contents); var clear = clearOpt !== undefined ? clearOpt : Sinon.createEmptyStub(sandbox.contents); var render = renderOpt !== undefined ? renderOpt : Sinon.createEmptyStub(sandbox.contents); @@ -28,6 +28,9 @@ function buildService(sandbox, initOpt, clearOpt, renderOpt, beforeExecOpt, afte var inspector = inspectorOpt !== undefined ? inspectorOpt : Sinon.createEmptyStub(sandbox.contents); var switchButton = switchButtonOpt !== undefined ? switchButtonOpt : Sinon.createEmptyStub(sandbox.contents); var imageButton = imageButtonOpt !== undefined ? imageButtonOpt : Sinon.createEmptyStub(sandbox.contents); + var inputText = inputTextOpt !== undefined ? inputTextOpt : Sinon.createEmptyStub(sandbox.contents); + var inputFloat3 = inputFloat3Opt !== undefined ? inputFloat3Opt : Sinon.createEmptyStub(sandbox.contents); + var collapsing = collapsingOpt !== undefined ? collapsingOpt : Sinon.createEmptyStub(sandbox.contents); return { init: init, render: render, @@ -52,6 +55,9 @@ function buildService(sandbox, initOpt, clearOpt, renderOpt, beforeExecOpt, afte inspector: inspector, switchButton: switchButton, imageButton: imageButton, + inputText: inputText, + inputFloat3: inputFloat3, + collapsing: collapsing, getContext: getContext }; } diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/tool/MainTool.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/tool/MainTool.bs.js index 3e6e0a0cf..e42f1b199 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/tool/MainTool.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/es6_global/test/tool/MainTool.bs.js @@ -83,7 +83,7 @@ function render(sandbox, getExtensionServiceOpt, getPackageServiceOpt, getAllCon getExtensionService = Caml_option.valFromOption(getExtensionServiceOpt); } else { var __x = Sinon.createEmptyStub(sandbox.contents); - getExtensionService = Sinon.returns(ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined), __x); + getExtensionService = Sinon.returns(ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined), __x); } var getPackageService = getPackageServiceOpt !== undefined ? Caml_option.valFromOption(getPackageServiceOpt) : Sinon.createEmptyStub(sandbox.contents); var getAllContributesByType = getAllContributesByTypeOpt !== undefined ? Caml_option.valFromOption(getAllContributesByTypeOpt) : Sinon.createEmptyStub(sandbox.contents); @@ -136,7 +136,8 @@ var show = UIManager$Meta3dUi.show; var hide = UIManager$Meta3dUi.hide; -function beginWindow(sandbox, label, getExtensionService, getPackageServiceOpt, getAllContributesByTypeOpt, getExtensionStateOpt, setExtensionStateOpt, getPackageOpt, restoreOpt, deepCopyOpt, imguiRendererExtensionProtocolNameOpt, meta3dStateOpt, param) { +function beginWindow(sandbox, label, getExtensionService, flagsOpt, getPackageServiceOpt, getAllContributesByTypeOpt, getExtensionStateOpt, setExtensionStateOpt, getPackageOpt, restoreOpt, deepCopyOpt, imguiRendererExtensionProtocolNameOpt, meta3dStateOpt, param) { + var flags = flagsOpt !== undefined ? flagsOpt : 0; var getPackageService = getPackageServiceOpt !== undefined ? Caml_option.valFromOption(getPackageServiceOpt) : Sinon.createEmptyStub(sandbox.contents); var getAllContributesByType = getAllContributesByTypeOpt !== undefined ? Caml_option.valFromOption(getAllContributesByTypeOpt) : Sinon.createEmptyStub(sandbox.contents); var getExtensionState = getExtensionStateOpt !== undefined ? Caml_option.valFromOption(getExtensionStateOpt) : Sinon.createEmptyStub(sandbox.contents); @@ -165,7 +166,7 @@ function beginWindow(sandbox, label, getExtensionService, getPackageServiceOpt, uiControl: 1 }, imguiRendererExtensionProtocolName - ], label); + ], label, flags); } function endWindow(sandbox, getExtensionService, getPackageServiceOpt, getAllContributesByTypeOpt, getExtensionStateOpt, setExtensionStateOpt, getPackageOpt, restoreOpt, deepCopyOpt, imguiRendererExtensionProtocolNameOpt, meta3dStateOpt, param) { diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/begin_window.steps.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/begin_window.steps.bs.js index 0d377fa3e..b2f092ae0 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/begin_window.steps.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/begin_window.steps.bs.js @@ -46,7 +46,7 @@ JestCucumber.defineFeature(feature, (function (test) { })); Curry._2(and, "prepare imgui renderer service", (function (param) { beginWindowStub.contents = Sinon.createEmptyStub(sandbox.contents); - imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, beginWindowStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, beginWindowStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); })); Curry._2(and, "prepare api", (function (param) { var __x = Sinon.createEmptyStub(sandbox.contents); @@ -58,7 +58,7 @@ JestCucumber.defineFeature(feature, (function (test) { label.contents = "Window"; })); Curry._2(param.when, "beginWindow", (function (param) { - newMeta3dState.contents = MainTool$Meta3dUi.beginWindow(sandbox, label.contents, getExtensionServiceStub.contents, undefined, undefined, Caml_option.some(getExtensionStateStub.contents), Caml_option.some(setExtensionStateStub.contents), undefined, undefined, undefined, imguiRendererExtensionProtocolName, 22, undefined); + newMeta3dState.contents = MainTool$Meta3dUi.beginWindow(sandbox, label.contents, getExtensionServiceStub.contents, undefined, undefined, undefined, Caml_option.some(getExtensionStateStub.contents), Caml_option.some(setExtensionStateStub.contents), undefined, undefined, undefined, imguiRendererExtensionProtocolName, 22, undefined); })); Curry._2(param.then, "invoke imgui renderer's beginWindow", (function (param) { Operators$Meta3dBsJestCucumber.$eq(expect([ diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/button.steps.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/button.steps.bs.js index e20093dcf..813a59de5 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/button.steps.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/button.steps.bs.js @@ -52,7 +52,7 @@ JestCucumber.defineFeature(feature, (function (test) { })); Curry._2(and, "prepare imgui renderer service", (function (param) { buttonStub.contents = Sinon.returns(true, Sinon.createEmptyStub(sandbox.contents)); - imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, buttonStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, buttonStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); })); Curry._2(and, "prepare api", (function (param) { var __x = Sinon.createEmptyStub(sandbox.contents); diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/clear.steps.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/clear.steps.bs.js index 2a29c0f18..1e2c6d9f6 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/clear.steps.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/clear.steps.bs.js @@ -42,7 +42,7 @@ JestCucumber.defineFeature(feature, (function (test) { })); Curry._2(and, "prepare imgui renderer service", (function (param) { clearStub.contents = Sinon.createEmptyStub(sandbox.contents); - imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, clearStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, clearStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); })); Curry._2(and, "prepare api", (function (param) { var __x = Sinon.createEmptyStub(sandbox.contents); diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/context.steps.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/context.steps.bs.js index ee3afd365..eaae5dbfd 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/context.steps.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/context.steps.bs.js @@ -41,7 +41,7 @@ JestCucumber.defineFeature(feature, (function (test) { }; var __x = Sinon.createEmptyStub(sandbox.contents); getContextStub.contents = Sinon.returns(context.contents, __x); - imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, getContextStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, getContextStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); })); Curry._2(and, "prepare api", (function (param) { var __x = Sinon.createEmptyStub(sandbox.contents); diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/fbo_texture.steps.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/fbo_texture.steps.bs.js index abd0ad668..9c86b738b 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/fbo_texture.steps.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/fbo_texture.steps.bs.js @@ -63,7 +63,7 @@ JestCucumber.defineFeature(feature, (function (test) { })); Curry._2(and, "prepare imgui renderer service", (function (param) { addFBOTextureStub.contents = Sinon.createEmptyStub(sandbox.contents); - imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, addFBOTextureStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, addFBOTextureStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); })); Curry._2(and, "prepare api", (function (param) { var __x = Sinon.createEmptyStub(sandbox.contents); diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/render.steps.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/render.steps.bs.js index afc1044dd..6bdd22fec 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/render.steps.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/step-definitions/render.steps.bs.js @@ -90,7 +90,7 @@ JestCucumber.defineFeature(feature, (function (test) { Curry._2(and, "prepare imgui renderer service", (function (param) { beforeExecStub.contents = Sinon.returns(13, Sinon.createEmptyStub(sandbox.contents)); afterExecStub.contents = Sinon.createEmptyStub(sandbox.contents); - imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, beforeExecStub.contents, afterExecStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, beforeExecStub.contents, afterExecStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); })); Curry._2(and, "register element func1 with exec order=1", (function (param) { state.contents = MainTool$Meta3dUi.createState(undefined); @@ -187,7 +187,7 @@ JestCucumber.defineFeature(feature, (function (test) { _prepare(param.given); Curry._2(and, "prepare imgui renderer service", (function (param) { renderStub.contents = Sinon.createEmptyStub(sandbox.contents); - imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, renderStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + imguiRendererService.contents = ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, renderStub.contents, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); })); Curry._2(and, "prepare api", (function (param) { var __x = Sinon.createEmptyStub(sandbox.contents); diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/tool/ImguiRendererServiceTool.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/tool/ImguiRendererServiceTool.bs.js index e37f3c355..98585937d 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/tool/ImguiRendererServiceTool.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/tool/ImguiRendererServiceTool.bs.js @@ -3,7 +3,7 @@ var Sinon = require("meta3d-bs-sinon/lib/js/src/sinon.bs.js"); var Caml_option = require("rescript/lib/js/caml_option.js"); -function buildService(sandbox, initOpt, clearOpt, renderOpt, beforeExecOpt, afterExecOpt, setStyleOpt, beginWindowOpt, endWindowOpt, beginChildOpt, endChildOpt, setNextWindowRectOpt, addFBOTextureOpt, getWindowBarHeightOpt, getContextOpt, buttonOpt, setCursorPosOpt, loadImageOpt, assetOpt, handleDragDropTargetOpt, menuOpt, treeOpt, inspectorOpt, switchButtonOpt, imageButtonOpt, param) { +function buildService(sandbox, initOpt, clearOpt, renderOpt, beforeExecOpt, afterExecOpt, setStyleOpt, beginWindowOpt, endWindowOpt, beginChildOpt, endChildOpt, setNextWindowRectOpt, addFBOTextureOpt, getWindowBarHeightOpt, getContextOpt, buttonOpt, setCursorPosOpt, loadImageOpt, assetOpt, handleDragDropTargetOpt, menuOpt, treeOpt, inspectorOpt, switchButtonOpt, imageButtonOpt, inputTextOpt, inputFloat3Opt, collapsingOpt, param) { var init = initOpt !== undefined ? initOpt : Sinon.createEmptyStub(sandbox.contents); var clear = clearOpt !== undefined ? clearOpt : Sinon.createEmptyStub(sandbox.contents); var render = renderOpt !== undefined ? renderOpt : Sinon.createEmptyStub(sandbox.contents); @@ -28,6 +28,9 @@ function buildService(sandbox, initOpt, clearOpt, renderOpt, beforeExecOpt, afte var inspector = inspectorOpt !== undefined ? inspectorOpt : Sinon.createEmptyStub(sandbox.contents); var switchButton = switchButtonOpt !== undefined ? switchButtonOpt : Sinon.createEmptyStub(sandbox.contents); var imageButton = imageButtonOpt !== undefined ? imageButtonOpt : Sinon.createEmptyStub(sandbox.contents); + var inputText = inputTextOpt !== undefined ? inputTextOpt : Sinon.createEmptyStub(sandbox.contents); + var inputFloat3 = inputFloat3Opt !== undefined ? inputFloat3Opt : Sinon.createEmptyStub(sandbox.contents); + var collapsing = collapsingOpt !== undefined ? collapsingOpt : Sinon.createEmptyStub(sandbox.contents); return { init: init, render: render, @@ -52,6 +55,9 @@ function buildService(sandbox, initOpt, clearOpt, renderOpt, beforeExecOpt, afte inspector: inspector, switchButton: switchButton, imageButton: imageButton, + inputText: inputText, + inputFloat3: inputFloat3, + collapsing: collapsing, getContext: getContext }; } diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/tool/MainTool.bs.js b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/tool/MainTool.bs.js index 59f883a19..4282df0e5 100644 --- a/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/tool/MainTool.bs.js +++ b/packages/editor-whole/ui/extensions/meta3d-ui/lib/js/test/tool/MainTool.bs.js @@ -83,7 +83,7 @@ function render(sandbox, getExtensionServiceOpt, getPackageServiceOpt, getAllCon getExtensionService = Caml_option.valFromOption(getExtensionServiceOpt); } else { var __x = Sinon.createEmptyStub(sandbox.contents); - getExtensionService = Sinon.returns(ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined), __x); + getExtensionService = Sinon.returns(ImguiRendererServiceTool$Meta3dUi.buildService(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined), __x); } var getPackageService = getPackageServiceOpt !== undefined ? Caml_option.valFromOption(getPackageServiceOpt) : Sinon.createEmptyStub(sandbox.contents); var getAllContributesByType = getAllContributesByTypeOpt !== undefined ? Caml_option.valFromOption(getAllContributesByTypeOpt) : Sinon.createEmptyStub(sandbox.contents); @@ -136,7 +136,8 @@ var show = UIManager$Meta3dUi.show; var hide = UIManager$Meta3dUi.hide; -function beginWindow(sandbox, label, getExtensionService, getPackageServiceOpt, getAllContributesByTypeOpt, getExtensionStateOpt, setExtensionStateOpt, getPackageOpt, restoreOpt, deepCopyOpt, imguiRendererExtensionProtocolNameOpt, meta3dStateOpt, param) { +function beginWindow(sandbox, label, getExtensionService, flagsOpt, getPackageServiceOpt, getAllContributesByTypeOpt, getExtensionStateOpt, setExtensionStateOpt, getPackageOpt, restoreOpt, deepCopyOpt, imguiRendererExtensionProtocolNameOpt, meta3dStateOpt, param) { + var flags = flagsOpt !== undefined ? flagsOpt : 0; var getPackageService = getPackageServiceOpt !== undefined ? Caml_option.valFromOption(getPackageServiceOpt) : Sinon.createEmptyStub(sandbox.contents); var getAllContributesByType = getAllContributesByTypeOpt !== undefined ? Caml_option.valFromOption(getAllContributesByTypeOpt) : Sinon.createEmptyStub(sandbox.contents); var getExtensionState = getExtensionStateOpt !== undefined ? Caml_option.valFromOption(getExtensionStateOpt) : Sinon.createEmptyStub(sandbox.contents); @@ -165,7 +166,7 @@ function beginWindow(sandbox, label, getExtensionService, getPackageServiceOpt, uiControl: 1 }, imguiRendererExtensionProtocolName - ], label); + ], label, flags); } function endWindow(sandbox, getExtensionService, getPackageServiceOpt, getAllContributesByTypeOpt, getExtensionStateOpt, setExtensionStateOpt, getPackageOpt, restoreOpt, deepCopyOpt, imguiRendererExtensionProtocolNameOpt, meta3dStateOpt, param) { diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/package.json b/packages/editor-whole/ui/extensions/meta3d-ui/package.json index 10c171f9f..dbbce7c9e 100755 --- a/packages/editor-whole/ui/extensions/meta3d-ui/package.json +++ b/packages/editor-whole/ui/extensions/meta3d-ui/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-ui", - "version": "0.20.14", + "version": "0.20.15", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "displayName": "ui", "protocol": { diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/src/Main.res b/packages/editor-whole/ui/extensions/meta3d-ui/src/Main.res index 7666792db..bc0a736fe 100755 --- a/packages/editor-whole/ui/extensions/meta3d-ui/src/Main.res +++ b/packages/editor-whole/ui/extensions/meta3d-ui/src/Main.res @@ -106,8 +106,8 @@ let getExtensionService: Meta3dType.Index.getExtensionService< setStyle: (meta3dState, style) => { UIManager.setStyle(meta3dState, (api, "meta3d-imgui-renderer-protocol"), style) }, - beginWindow: (meta3dState, label) => { - UIManager.beginWindow(meta3dState, (api, "meta3d-imgui-renderer-protocol"), label) + beginWindow: (meta3dState, label, flags) => { + UIManager.beginWindow(meta3dState, (api, "meta3d-imgui-renderer-protocol"), label, flags) }, endWindow: meta3dState => { UIManager.endWindow(meta3dState, (api, "meta3d-imgui-renderer-protocol")) @@ -155,9 +155,12 @@ let getExtensionService: Meta3dType.Index.getExtensionService< handleDragDropTarget: UIManager.handleDragDropTarget((api, "meta3d-imgui-renderer-protocol")), menu: UIManager.menu((api, "meta3d-imgui-renderer-protocol")), tree: UIManager.tree((api, "meta3d-imgui-renderer-protocol")), - inspector: UIManager.inspector((api, "meta3d-imgui-renderer-protocol")), + // inspector: UIManager.inspector((api, "meta3d-imgui-renderer-protocol")), switchButton: UIManager.switchButton((api, "meta3d-imgui-renderer-protocol")), imageButton: UIManager.imageButton((api, "meta3d-imgui-renderer-protocol")), + inputText: UIManager.inputText((api, "meta3d-imgui-renderer-protocol")), + inputFloat3: UIManager.inputFloat3((api, "meta3d-imgui-renderer-protocol")), + collapsing: UIManager.collapsing((api, "meta3d-imgui-renderer-protocol")), // getIOData: UIManager.getIOData, // dispatch: UIManager.dispatch, updateElementState: (meta3dState, updateElementStateFunc) => { diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/src/UIManager.res b/packages/editor-whole/ui/extensions/meta3d-ui/src/UIManager.res index 99dd4dd00..aa651df7e 100755 --- a/packages/editor-whole/ui/extensions/meta3d-ui/src/UIManager.res +++ b/packages/editor-whole/ui/extensions/meta3d-ui/src/UIManager.res @@ -557,11 +557,16 @@ let setStyle = (meta3dState, data, style) => { ) } -let beginWindow = (meta3dState, data, label: Meta3dImguiRendererProtocol.ServiceType.label) => { +let beginWindow = ( + meta3dState, + data, + label: Meta3dImguiRendererProtocol.ServiceType.label, + flags, +) => { _invokeIMGUIRenderFunc( meta3dState, (. imguiRendererState, imguiRendererService) => { - imguiRendererService.beginWindow(. label) + imguiRendererService.beginWindow(. label, flags) imguiRendererState }, @@ -741,50 +746,80 @@ let tree = (data, meta3dState, treeData, treeNodeLabel, lastTreeSelectedData, wi ) } -let inspector = ( - data, - meta3dState, - gameObjectName, - localPosition, - localEulerAngles, - localScale, - windowName, - rect, -) => { +// let inspector = ( +// data, +// meta3dState, +// gameObjectName, +// localPosition, +// localEulerAngles, +// localScale, +// windowName, +// rect, +// ) => { +// _invokeIMGUIRenderFuncWithParam( +// meta3dState, +// (. imguiRendererState, imguiRendererService) => { +// ( +// imguiRendererState, +// imguiRendererService.inspector(. +// gameObjectName, +// localPosition, +// localEulerAngles, +// localScale, +// windowName, +// rect, +// ), +// ) +// }, +// data, +// ) +// } + +let switchButton = (data, meta3dState, isRun, textures, size) => { _invokeIMGUIRenderFuncWithParam( meta3dState, (. imguiRendererState, imguiRendererService) => { - ( - imguiRendererState, - imguiRendererService.inspector(. - gameObjectName, - localPosition, - localEulerAngles, - localScale, - windowName, - rect, - ), - ) + (imguiRendererState, imguiRendererService.switchButton(. isRun, textures, size)) }, data, ) } -let switchButton = (data, meta3dState, isRun, textures, size) => { +let imageButton = (data, meta3dState, texture, size) => { _invokeIMGUIRenderFuncWithParam( meta3dState, (. imguiRendererState, imguiRendererService) => { - (imguiRendererState, imguiRendererService.switchButton(. isRun, textures, size)) + (imguiRendererState, imguiRendererService.imageButton(. texture, size)) }, data, ) } -let imageButton = (data, meta3dState, texture, size) => { +let inputText = (data, meta3dState, label, value, maxLength, width) => { _invokeIMGUIRenderFuncWithParam( meta3dState, (. imguiRendererState, imguiRendererService) => { - (imguiRendererState, imguiRendererService.imageButton(. texture, size)) + (imguiRendererState, imguiRendererService.inputText(. label, value, maxLength, width)) + }, + data, + ) +} + +let inputFloat3 = (data, meta3dState, label, value, step, stepFast, width) => { + _invokeIMGUIRenderFuncWithParam( + meta3dState, + (. imguiRendererState, imguiRendererService) => { + (imguiRendererState, imguiRendererService.inputFloat3(. label, value, step, stepFast, width)) + }, + data, + ) +} + +let collapsing = (data, meta3dState, label, isOpen, cond) => { + _invokeIMGUIRenderFuncWithParam( + meta3dState, + (. imguiRendererState, imguiRendererService) => { + (imguiRendererState, imguiRendererService.collapsing(. label, isOpen, cond)) }, data, ) diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/test/tool/ImguiRendererServiceTool.res b/packages/editor-whole/ui/extensions/meta3d-ui/test/tool/ImguiRendererServiceTool.res index 10b55e963..93df0f4de 100755 --- a/packages/editor-whole/ui/extensions/meta3d-ui/test/tool/ImguiRendererServiceTool.res +++ b/packages/editor-whole/ui/extensions/meta3d-ui/test/tool/ImguiRendererServiceTool.res @@ -26,6 +26,9 @@ let buildService = ( ~inspector=createEmptyStub(refJsObjToSandbox(sandbox.contents)), ~switchButton=createEmptyStub(refJsObjToSandbox(sandbox.contents)), ~imageButton=createEmptyStub(refJsObjToSandbox(sandbox.contents)), + ~inputText=createEmptyStub(refJsObjToSandbox(sandbox.contents)), + ~inputFloat3=createEmptyStub(refJsObjToSandbox(sandbox.contents)), + ~collapsing=createEmptyStub(refJsObjToSandbox(sandbox.contents)), (), ): Meta3dImguiRendererProtocol.ServiceType.service => { { @@ -53,5 +56,8 @@ let buildService = ( inspector, switchButton, imageButton, + inputText, + inputFloat3, + collapsing } } diff --git a/packages/editor-whole/ui/extensions/meta3d-ui/test/tool/MainTool.res b/packages/editor-whole/ui/extensions/meta3d-ui/test/tool/MainTool.res index 25ca2e7af..6d6cc517a 100755 --- a/packages/editor-whole/ui/extensions/meta3d-ui/test/tool/MainTool.res +++ b/packages/editor-whole/ui/extensions/meta3d-ui/test/tool/MainTool.res @@ -200,6 +200,7 @@ let beginWindow = ( ~sandbox, ~label, ~getExtensionService, + ~flags=Obj.magic(0), ~getPackageService=createEmptyStub(refJsObjToSandbox(sandbox.contents)), ~getAllContributesByType=createEmptyStub(refJsObjToSandbox(sandbox.contents)), ~getExtensionState=createEmptyStub(refJsObjToSandbox(sandbox.contents)), @@ -236,6 +237,7 @@ let beginWindow = ( imguiRendererExtensionProtocolName, ), label, + flags, ) } diff --git a/packages/editor-whole/ui/protocols/extension_protocols/meta3d-imgui-renderer-protocol/package.json b/packages/editor-whole/ui/protocols/extension_protocols/meta3d-imgui-renderer-protocol/package.json index 15d767f3b..e931b2805 100755 --- a/packages/editor-whole/ui/protocols/extension_protocols/meta3d-imgui-renderer-protocol/package.json +++ b/packages/editor-whole/ui/protocols/extension_protocols/meta3d-imgui-renderer-protocol/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-imgui-renderer-protocol", - "version": "0.20.5", + "version": "0.20.7", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "displayName": "renderer protocol", "author": "Wonder", diff --git a/packages/editor-whole/ui/protocols/extension_protocols/meta3d-imgui-renderer-protocol/src/service/ServiceType.res b/packages/editor-whole/ui/protocols/extension_protocols/meta3d-imgui-renderer-protocol/src/service/ServiceType.res index d0b099d98..579531359 100755 --- a/packages/editor-whole/ui/protocols/extension_protocols/meta3d-imgui-renderer-protocol/src/service/ServiceType.res +++ b/packages/editor-whole/ui/protocols/extension_protocols/meta3d-imgui-renderer-protocol/src/service/ServiceType.res @@ -86,6 +86,10 @@ type windowFlags = | @as(0) None | @as(1) NoTitleBar +type cond = + | @as(0) None + | @as(1) Always + // @genType type service = { init: (. StateType.state, bool, bool, Dom.htmlCanvasElement) => Js.Promise.t, @@ -146,5 +150,14 @@ type service = { size, ) => (bool, bool), imageButton: (. imguiImplTexture, size) => bool, + inputText: (. label, string, int, int) => Js.Nullable.t, + inputFloat3: ( + . label, + (float, float, float), + float, + float, + int, + ) => Js.Nullable.t<(float, float, float)>, + collapsing: (. label, bool, cond) => bool, getContext: unit => context, } diff --git a/packages/editor-whole/ui/protocols/extension_protocols/meta3d-imgui-renderer-protocol/src/service/ServiceType.ts b/packages/editor-whole/ui/protocols/extension_protocols/meta3d-imgui-renderer-protocol/src/service/ServiceType.ts index 6557b1176..41343610f 100755 --- a/packages/editor-whole/ui/protocols/extension_protocols/meta3d-imgui-renderer-protocol/src/service/ServiceType.ts +++ b/packages/editor-whole/ui/protocols/extension_protocols/meta3d-imgui-renderer-protocol/src/service/ServiceType.ts @@ -1,8 +1,8 @@ import type { state as StateType_state } from '../../src/state/StateType'; import type { texture as webgl1Texture } from 'meta3d-webgl1-protocol/src/service/ServiceType'; import { nullable, strictNullable } from 'meta3d-commonlib-ts/src/nullable'; -import { name } from 'meta3d-gameobject-protocol'; -import { localPosition, localEulerAngles, localScale } from 'meta3d-component-transform-protocol'; +// import { name } from 'meta3d-gameobject-protocol'; +// import { localPosition, localEulerAngles, localScale } from 'meta3d-component-transform-protocol'; import { data as inputAssetData } from 'meta3d-input-asset-protocol'; // tslint:disable-next-line:interface-over-type-literal @@ -96,37 +96,37 @@ export type getValueFunc = () => T export type setValueFunc = (value: T) => void -export type inspectorFunc = ( - // [ - // getGameObjectNameFunc, setGameObjectNameFunc, - // getLocalPositionXFunc, setLocalPositionXFunc, - // getLocalPositionYFunc, setLocalPositionYFunc, - // getLocalPositionZFunc, setLocalPositionZFunc, - // getLocalEulerXFunc, setLocalEulerXFunc, - // getLocalEulerYFunc, setLocalEulerYFunc, - // getLocalEulerZFunc, setLocalEulerZFunc, - // getLocalScaleXFunc, setLocalScaleXFunc, - // getLocalScaleYFunc, setLocalScaleYFunc, - // getLocalScaleZFunc, setLocalScaleZFunc, - // ]: [getValueFunc, setValueFunc, - // getValueFunc, setValueFunc, - // getValueFunc, setValueFunc, - // getValueFunc, setValueFunc, - // getValueFunc, setValueFunc, - // getValueFunc, setValueFunc, - // getValueFunc, setValueFunc, - // getValueFunc, setValueFunc, - // getValueFunc, setValueFunc, - // getValueFunc, setValueFunc, - // ], - - gameObjectName: name, - localPosition: localPosition, - localEulerAngles: localEulerAngles, - localScale: localScale, - windowName: string, - rect: rect, -) => [nullable, nullable, nullable, nullable] +// export type inspectorFunc = ( +// // [ +// // getGameObjectNameFunc, setGameObjectNameFunc, +// // getLocalPositionXFunc, setLocalPositionXFunc, +// // getLocalPositionYFunc, setLocalPositionYFunc, +// // getLocalPositionZFunc, setLocalPositionZFunc, +// // getLocalEulerXFunc, setLocalEulerXFunc, +// // getLocalEulerYFunc, setLocalEulerYFunc, +// // getLocalEulerZFunc, setLocalEulerZFunc, +// // getLocalScaleXFunc, setLocalScaleXFunc, +// // getLocalScaleYFunc, setLocalScaleYFunc, +// // getLocalScaleZFunc, setLocalScaleZFunc, +// // ]: [getValueFunc, setValueFunc, +// // getValueFunc, setValueFunc, +// // getValueFunc, setValueFunc, +// // getValueFunc, setValueFunc, +// // getValueFunc, setValueFunc, +// // getValueFunc, setValueFunc, +// // getValueFunc, setValueFunc, +// // getValueFunc, setValueFunc, +// // getValueFunc, setValueFunc, +// // getValueFunc, setValueFunc, +// // ], + +// gameObjectName: name, +// localPosition: localPosition, +// localEulerAngles: localEulerAngles, +// localScale: localScale, +// windowName: string, +// rect: rect, +// ) => [nullable, nullable, nullable, nullable] export type ref = { content: T @@ -137,6 +137,12 @@ export enum windowFlags { NoTitleBar } +export enum cond { + None, + Always +} + + // tslint:disable-next-line:interface-over-type-literal export type service = { readonly init: (_1: StateType_state, _2: boolean, _3: boolean, _4: HTMLCanvasElement) => Promise; @@ -159,7 +165,7 @@ export type service = { readonly handleDragDropTarget: (type: string) => nullable; readonly menu: (allLabels: menuAllLabels, windowName: string, rect: rect) => nullable; readonly tree: treeFunc; - readonly inspector: inspectorFunc; + // readonly inspector: inspectorFunc; readonly switchButton: ( isRunState: boolean, textures: { @@ -169,5 +175,23 @@ export type service = { size: size ) => [boolean, boolean]; readonly imageButton: (_1: imguiImplTexture, _2: size) => boolean; + readonly inputText: ( + label: label, + value: string, + maxLength: number, + width: number + ) => nullable; + readonly inputFloat3: ( + label: label, + value: [number, number, number], + step: number, + stepFast: number, + width: number + ) => nullable<[number, number, number]>; + readonly collapsing: ( + label: label, + isOpen: boolean, + cond: cond + ) => boolean; readonly getContext: () => context }; diff --git a/packages/editor-whole/ui/protocols/extension_protocols/meta3d-ui-protocol/package.json b/packages/editor-whole/ui/protocols/extension_protocols/meta3d-ui-protocol/package.json index db347dcb4..a78137bb7 100755 --- a/packages/editor-whole/ui/protocols/extension_protocols/meta3d-ui-protocol/package.json +++ b/packages/editor-whole/ui/protocols/extension_protocols/meta3d-ui-protocol/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-ui-protocol", - "version": "0.20.6", + "version": "0.20.7", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "displayName": "ui protocol", "author": "Wonder", diff --git a/packages/editor-whole/ui/protocols/extension_protocols/meta3d-ui-protocol/src/service/ServiceType.res b/packages/editor-whole/ui/protocols/extension_protocols/meta3d-ui-protocol/src/service/ServiceType.res index 81059e667..05e517a00 100755 --- a/packages/editor-whole/ui/protocols/extension_protocols/meta3d-ui-protocol/src/service/ServiceType.res +++ b/packages/editor-whole/ui/protocols/extension_protocols/meta3d-ui-protocol/src/service/ServiceType.res @@ -158,15 +158,15 @@ type service = { string, Meta3dImguiRendererProtocol.ServiceType.rect, ) => (Meta3dType.Index.state, Meta3dImguiRendererProtocol.ServiceType.treeReturnData), - inspector: ( - Meta3dType.Index.state, - string, - (float, float, float), - (float, float, float), - (float, float, float), - string, - Meta3dImguiRendererProtocol.ServiceType.rect, - ) => (Meta3dType.Index.state, Meta3dImguiRendererProtocol.ServiceType.inspectorReturnData), + // inspector: ( + // Meta3dType.Index.state, + // string, + // (float, float, float), + // (float, float, float), + // (float, float, float), + // string, + // Meta3dImguiRendererProtocol.ServiceType.rect, + // ) => (Meta3dType.Index.state, Meta3dImguiRendererProtocol.ServiceType.inspectorReturnData), switchButton: ( Meta3dType.Index.state, bool, @@ -181,6 +181,27 @@ type service = { Meta3dImguiRendererProtocol.ServiceType.imguiImplTexture, Meta3dImguiRendererProtocol.ServiceType.size, ) => (Meta3dType.Index.state, bool), + inputText: ( + Meta3dType.Index.state, + Meta3dImguiRendererProtocol.ServiceType.label, + string, + int, + int, + ) => (Meta3dType.Index.state, Js.Nullable.t), + inputFloat3: ( + Meta3dType.Index.state, + Meta3dImguiRendererProtocol.ServiceType.label, + (float, float, float), + float, + float, + int, + ) => (Meta3dType.Index.state, Js.Nullable.t<(float, float, float)>), + collapsing: ( + Meta3dType.Index.state, + Meta3dImguiRendererProtocol.ServiceType.label, + bool, + Meta3dImguiRendererProtocol.ServiceType.cond, + ) => (Meta3dType.Index.state, bool), init: ( Meta3dType.Index.state, (Meta3dType.Index.api, imguiRendererExtensionProtocolName), diff --git a/packages/editor-whole/ui/protocols/extension_protocols/meta3d-ui-protocol/src/service/ServiceType.ts b/packages/editor-whole/ui/protocols/extension_protocols/meta3d-ui-protocol/src/service/ServiceType.ts index 891be6146..7b256eeaf 100755 --- a/packages/editor-whole/ui/protocols/extension_protocols/meta3d-ui-protocol/src/service/ServiceType.ts +++ b/packages/editor-whole/ui/protocols/extension_protocols/meta3d-ui-protocol/src/service/ServiceType.ts @@ -3,7 +3,7 @@ import { elementContribute, elementName } from "../contribute/ElementContributeT import { textureID, elementState } from "../state/StateType" import { skinContribute, skinName } from "../contribute/SkinContributeType" import { uiControlContribute, uiControlFunc, uiControlName } from "../contribute/UIControlContributeType" -import { style, label, pos, size, rect, texture as imguiTexture, context, imguiImplTexture, imageSrc, menuAllLabels, menuLabel, treeData, treeNodeLabel, treeIndexData, treeReturnData, windowFlags } from "meta3d-imgui-renderer-protocol/src/service/ServiceType" +import { style, label, pos, size, rect, texture as imguiTexture, context, imguiImplTexture, imageSrc, menuAllLabels, menuLabel, treeData, treeNodeLabel, treeIndexData, treeReturnData, windowFlags, cond } from "meta3d-imgui-renderer-protocol/src/service/ServiceType" import { nullable, strictNullable } from "meta3d-commonlib-ts/src/nullable" import { name } from "meta3d-gameobject-protocol" import { localEulerAngles, localPosition, localScale } from "meta3d-component-transform-protocol" @@ -121,7 +121,7 @@ export type service = { readonly beginWindow: ( meta3dState: meta3dState, label: label, - flags:windowFlags + flags: windowFlags ) => meta3dState; readonly endWindow: ( meta3dState: meta3dState @@ -244,6 +244,27 @@ export type service = { clickTexture: imguiImplTexture, size: size ) => [meta3dState, boolean]; + readonly inputText: ( + meta3dState: meta3dState, + label: label, + value: string, + maxLength: number, + width: number + ) => [meta3dState, nullable]; + readonly inputFloat3: ( + meta3dState: meta3dState, + label: label, + value: [number, number, number], + step: number, + stepFast: number, + width: number + ) => [meta3dState, nullable<[number, number, number]>]; + readonly collapsing: ( + meta3dState: meta3dState, + label: label, + isOpen: boolean, + cond: cond + ) => [meta3dState, boolean]; readonly handleDragDropTarget: ( meta3dState: meta3dState, type: string diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/ap_assemble/ap_inspector/components/ApInspector.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/ap_assemble/ap_inspector/components/ApInspector.res index e8f61dab8..c528a16d2 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/ap_assemble/ap_inspector/components/ApInspector.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/ap_assemble/ap_inspector/components/ApInspector.res @@ -26,13 +26,13 @@ module Method = { let buildClearColorField = (dispatch, setClearColorField, clearColor, clearColorField) => { <> FloatUtils.floatToString} + value={clearColorField} step="0.001" - min="0" - max="1" + min=0.0 + max=1.0 stringMode=true onChange={value => { - setClearColorField(dispatch, clearColor, value->FloatUtils.stringToFloat) + setClearColorField(dispatch, clearColor, value) }} /> @@ -61,10 +61,11 @@ module Method = { let make = (~service: service) => { let dispatch = FrontendUtils.ReduxUtils.ApAssemble.useDispatch(service.react.useDispatch) - let (isShowApInspector, selectedContributes, apInspectorData) = FrontendUtils.ReduxUtils.ApAssemble.useSelector( - service.react.useSelector, - Method.useSelector, - ) + let ( + isShowApInspector, + selectedContributes, + apInspectorData, + ) = FrontendUtils.ReduxUtils.ApAssemble.useSelector(service.react.useSelector, Method.useSelector) let {isDebug, clearColor, skinName} = apInspectorData @@ -95,13 +96,7 @@ let make = (~service: service) => { ->SelectedContributesForElementUtils.getSkins ->Meta3dCommonlib.ListSt.toArray ->Meta3dCommonlib.ArraySt.map(({data}) => { - ( - service.meta3d.execGetContributeFunc(. - data.contributeFuncData, - // Meta3dCommonlib.ImmutableHashMap.createEmpty(), - // Meta3dCommonlib.ImmutableHashMap.createEmpty(), - )->Obj.magic - )["skinName"] + (service.meta3d.execGetContributeFunc(. data.contributeFuncData)->Obj.magic)["skinName"] }), )} diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/element_visual/utils/ElementMRUtils.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/element_visual/utils/ElementMRUtils.res index b9439ea30..ba0014416 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/element_visual/utils/ElementMRUtils.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/element_visual/utils/ElementMRUtils.res @@ -198,13 +198,15 @@ let _generateSpecific = (specific: FrontendUtils.ElementAssembleStoreType.specif switch value { | SpecicFieldDataValue(value) => switch type_ { - // | #string => j`"${value->Obj.magic}"` | #imageBase64 => value->Obj.magic->Meta3dCommonlib.NullableSt.isNullable ? {j`null,`} : j`"${value->Obj.magic}",` | #menuItems => j`${value->Obj.magic->Js.Json.stringify->Obj.magic},` - | _ => j`"${SpecificUtils.convertValueToString(value, type_)}",` + | #bool => j`${value->Obj.magic->BoolUtils.boolToString},` + | #select => j`${SpecificUtils.convertValueToString(value, type_)},` + | #number => j`${value->NumberUtils.numberToString},` + | _ => j`"${SpecificUtils.convertValueToString(value->Obj.magic, type_)}",` } // | ElementStateFieldForSpecificDataValue(value) => j`elementState.${value}` diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/ui_control_Inspector/components/UIControlInspector.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/ui_control_Inspector/components/UIControlInspector.res index 2d08cc751..c2cc9f0c1 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/ui_control_Inspector/components/UIControlInspector.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/ui_control_Inspector/components/UIControlInspector.res @@ -262,14 +262,14 @@ module Method = { value={rectField ->_getRectFieldIntValue ->Meta3dCommonlib.OptionSt.getWithDefault(0) - ->Js.Int.toString} + ->Obj.magic} step="1" onChange={value => { setRectField( dispatch, id, rect, - value->IntUtils.stringToInt->FrontendUtils.CommonType.IntForRectField, + value->Obj.magic->FrontendUtils.CommonType.IntForRectField, ) }} /> @@ -474,10 +474,7 @@ function (onloadFunc, onprogressFunc, onerrorFunc, file, ){ ? React.null : SpecificUtils.convertValueToString( - _, - type_, - )} + value={getSpecificDataValue(value)->SpecificUtils.convertValueToString(type_)} onChange={e => { FrontendUtils.ErrorUtils.swallowCatchedError(() => { _setSpecificData( @@ -495,6 +492,62 @@ function (onloadFunc, onprogressFunc, onerrorFunc, file, ){ }} /> + | #bool => + FrontendUtils.SelectUtils.buildSelectWithoutEmpty( + value => + _setSpecificData( + dispatch, + specific, + id, + i, + value + ->SpecificUtils.convertStringToValue(type_) + ->FrontendUtils.CommonType.SpecicFieldDataValue, + type_, + ), + getSpecificDataValue(value)->SpecificUtils.convertValueToString(type_), + ["true", "false"], + ) + | #select => + FrontendUtils.SelectUtils.buildSelectWithKeysAndWithoutEmpty(selectedValue => { + _setSpecificData( + dispatch, + specific, + id, + i, + { + "selected": selectedValue, + "data": (getSpecificDataValue(value)->Obj.magic)["data"], + } + ->Obj.magic + ->FrontendUtils.CommonType.SpecicFieldDataValue, + type_, + ) + }, ( + getSpecificDataValue(value)->Obj.magic + )["selected"], ( + getSpecificDataValue(value)->Obj.magic + )["data"]->Meta3dCommonlib.ArraySt.map( + valueData => valueData["key"], + ), (getSpecificDataValue(value)->Obj.magic)["data"]->Meta3dCommonlib.ArraySt.map( + valueData => valueData["value"], + )) + | #number => + Obj.magic} + step="0.0001" + onChange={e => { + _setSpecificData( + dispatch, + specific, + id, + i, + e->EventUtils.getEventTargetValue->FrontendUtils.CommonType.SpecicFieldDataValue, + type_, + ) + }} + /> }} }) diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/utils/SpecificUtils.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/utils/SpecificUtils.res index 0ac1e88dd..d50fcfc41 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/utils/SpecificUtils.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/element_assemble/utils/SpecificUtils.res @@ -1,21 +1,35 @@ let _handleSpecificDataFieldType = ( - (handleStringTypeFunc, handleImageBase64TypeFunc, handleMenuItemsTypeFunc), - type_, + ( + handleStringTypeFunc, + handleImageBase64TypeFunc, + handleMenuItemsTypeFunc, + handleBoolTypeFunc, + handleSelectTypeFunc, + // handleNumberTypeFunc, + ), + type_: FrontendUtils.CommonType.specificDataType, + value, ) => { switch type_ { - | #string => handleStringTypeFunc() - | #imageBase64 => handleImageBase64TypeFunc() - | #menuItems => handleMenuItemsTypeFunc() + | #string => handleStringTypeFunc(value) + | #imageBase64 => handleImageBase64TypeFunc(value) + | #menuItems => handleMenuItemsTypeFunc(value) + | #bool => handleBoolTypeFunc(value) + | #select => handleSelectTypeFunc(value) + // | #number => handleNumberTypeFunc(value) } } -let convertValueToString = (value, type_): string => { +let convertValueToString = ( + value: Meta3dType.UIControlProtocolConfigType.uiControlSpecicFieldValue, + type_: FrontendUtils.CommonType.specificDataType, +): string => { _handleSpecificDataFieldType( ( - () => { + value => { value->Obj.magic }, - () => { + value => { Meta3dCommonlib.Exception.throwErr( Meta3dCommonlib.Exception.buildErr( Meta3dCommonlib.Log.buildErrorMessage( @@ -31,30 +45,58 @@ let convertValueToString = (value, type_): string => { ) // value->Obj.magic->Meta3dCommonlib.NullableSt.getWithDefault("")->Obj.magic }, - () => { + value => { value->Obj.magic->Js.Json.stringify }, + value => { + value->Obj.magic->BoolUtils.boolToString + }, + value => { + !IntUtils.isInteger((value->Obj.magic)["selected"]->Obj.magic) + ? Meta3dCommonlib.Exception.throwErr( + Meta3dCommonlib.Exception.buildErr( + Meta3dCommonlib.Log.buildErrorMessage( + ~title={j`value should be integer`}, + ~description={ + "" + }, + ~reason="", + ~solution=j``, + ~params=j``, + ), + ), + ) + : value->Obj.magic->Js.Json.stringify + }, ), type_, + value, ) } let convertStringToValue = ( - valueStr, + valueStr: string, type_, ): Meta3dType.UIControlProtocolConfigType.uiControlSpecicFieldValue => { _handleSpecificDataFieldType( ( - () => { + valueStr => { valueStr->Obj.magic }, - () => { + valueStr => { valueStr->Obj.magic }, - () => { + valueStr => { valueStr->Obj.magic->Js.Json.parseExn->Obj.magic }, + valueStr => { + valueStr->Obj.magic->BoolUtils.stringToBool->Obj.magic + }, + valueStr => { + valueStr->Obj.magic->IntUtils.stringToInt->Obj.magic + }, ), type_, + valueStr, ) } diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/utils/IntUtils.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/utils/IntUtils.res index 75c4dda14..f68d6c17e 100755 --- a/platform/assemble-space/src/external_layer/ui/assemble_space/components/utils/IntUtils.res +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/utils/IntUtils.res @@ -3,3 +3,15 @@ let stringToInt: string => int = %raw(` return parseInt(str, 10) } `) + +let intToString: int => string = %raw(` + function(value) { + return value.toString() +} + `) + +let isInteger: int => bool = %raw(` + function(value) { + return Number.isInteger(value) +} + `) diff --git a/platform/assemble-space/src/external_layer/ui/assemble_space/components/utils/NumberUtils.res b/platform/assemble-space/src/external_layer/ui/assemble_space/components/utils/NumberUtils.res new file mode 100755 index 000000000..fc33b5abb --- /dev/null +++ b/platform/assemble-space/src/external_layer/ui/assemble_space/components/utils/NumberUtils.res @@ -0,0 +1,13 @@ +let stringToNumber = %raw(` + function(str) { + return Number(str) +} + `) + +let numberToString = %raw(` + function(value) { + let str = value.toString(); + + return str.indexOf(".") < 0 ? str + ".0" : str; +} + `) diff --git a/platform/assemble-space/test/step-definitions/elementMR.steps.res b/platform/assemble-space/test/step-definitions/elementMR.steps.res index 75ee0dba6..fcba59040 100755 --- a/platform/assemble-space/test/step-definitions/elementMR.steps.res +++ b/platform/assemble-space/test/step-definitions/elementMR.steps.res @@ -659,6 +659,34 @@ handle click event code... ~value=[]->Obj.magic->FrontendUtils.CommonType.SpecicFieldDataValue, (), ), + UIControlInspectorTool.buildSpecific( + ~name="isOpen", + ~type_=#bool, + ~value=true->Obj.magic->FrontendUtils.CommonType.SpecicFieldDataValue, + (), + ), + UIControlInspectorTool.buildSpecific( + ~name="flags", + ~type_=#select, + ~value={ + "selected": 0, + "data": [ + { + "key": "key1", + "value": 0, + }, + ], + } + ->Obj.magic + ->FrontendUtils.CommonType.SpecicFieldDataValue, + (), + ), + UIControlInspectorTool.buildSpecific( + ~name="step", + ~type_=#number, + ~value=1.1->Obj.magic->FrontendUtils.CommonType.SpecicFieldDataValue, + (), + ), ], (), ), @@ -740,8 +768,13 @@ handle click event code... \"and"( "generate correct result", () => { - str.contents->NewlineTool.unifyNewlineChar->NewlineTool.removeBlankChar->expect == - "\nwindow.Contribute = {\n getContribute: (api) => {\n return {\n elementName:\"ElementAssembleElement\",\n execOrder: 0,\n elementState: {},\n elementFunc: (meta3dState, elementState) => {\n let ui = api.getPackageService(meta3dState, \"meta3d-editor-whole-protocol\").ui(meta3dState)\n\n let { getUIControlFunc, getInputFunc } = ui\n\n let Window1 = getUIControlFunc(meta3dState,\"Window1\")\n \n let input1 = getInputFunc(meta3dState,\"input1\")\n \n let data = null\n if(true){\n return Window1(meta3dState,\n input1,\n {\n ...{rect: {\n x: 1,\n y: 0,\n width: 0,\n height: 0\n }},\n ...{label: \"Window1\",image1:\"aaa\",image2:null,},\n childrenFunc:(meta3dState) => new Promise((resolve, reject) => resolve(meta3dState))\n }\n ).then(data =>{\n meta3dState = data[0]\n\n return new Promise((resolve) => {\n resolve(meta3dState)\n })\n })}\n return new Promise((resolve) => {\n resolve(meta3dState)\n })\n \n }\n }\n }\n}\n "->NewlineTool.removeBlankChar + str.contents + ->NewlineTool.unifyNewlineChar + ->NewlineTool.removeBlankChar + ->expect == + "\nwindow.Contribute = {\n getContribute: (api) => {\n return {\n elementName:\"ElementAssembleElement\",\n execOrder: 0,\n elementState: {},\n elementFunc: (meta3dState, elementState) => {\n let ui = api.getPackageService(meta3dState, \"meta3d-editor-whole-protocol\").ui(meta3dState)\n\n let { getUIControlFunc, getInputFunc } = ui\n\n let Window1 = getUIControlFunc(meta3dState,\"Window1\")\n \n let input1 = getInputFunc(meta3dState,\"input1\")\n \n let Window2 = getUIControlFunc(meta3dState,\"Window2\")\n \n let input2 = getInputFunc(meta3dState,\"input2\")\n \n let data = null\n if(true){\n return Window1(meta3dState,\n input1,\n {\n ...{rect: {\n x: 1,\n y: 0,\n width: 0,\n height: 0\n }},\n ...{label: \"Window1\",image1: \"aaa\",image2: null,items: [],isOpen: true,flags: {\"selected\":0,\"data\":[{\"key\":\"key1\",\"value\":0}]},step: 1.1,},\n childrenFunc:(meta3dState) => new Promise((resolve, reject) => resolve(meta3dState))\n }\n ).then(data =>{\n meta3dState = data[0]\nif(true){\n return Window2(meta3dState,\n input2,\n {\n ...{rect: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n }},\n ...{},\n childrenFunc:(meta3dState) => new Promise((resolve, reject) => resolve(meta3dState))\n }\n ).then(data =>{\n meta3dState = data[0]\n\n return new Promise((resolve) => {\n resolve(meta3dState)\n })\n })}})}\n return new Promise((resolve) => {\n resolve(meta3dState)\n })\n \n }\n }\n }\n}\n " + ->NewlineTool.unifyNewlineChar + ->NewlineTool.removeBlankChar }, ) }) diff --git a/platform/frontend-utils/src/SelectUtils.res b/platform/frontend-utils/src/SelectUtils.res index a2e51536a..52d94ffd6 100755 --- a/platform/frontend-utils/src/SelectUtils.res +++ b/platform/frontend-utils/src/SelectUtils.res @@ -30,4 +30,18 @@ let buildSelectWithoutEmpty = (onChange, defaultValue, values) => { } +let buildSelectWithKeysAndWithoutEmpty = (onChange, defaultValue, keys, values) => { + open Antd + + +} + let buildSelect2 = () => React.null diff --git a/platform/frontend-utils/src/externals/antd/Antd__InputNumber.res b/platform/frontend-utils/src/externals/antd/Antd__InputNumber.res index 2e9f5f987..8d364c179 100755 --- a/platform/frontend-utils/src/externals/antd/Antd__InputNumber.res +++ b/platform/frontend-utils/src/externals/antd/Antd__InputNumber.res @@ -1,11 +1,11 @@ @module("antd") @react.component external make: ( ~style: ReactDOM.Style.t=?, - ~onChange: string => unit=?, - ~defaultValue: string=?, - ~value: string=?, - ~min: string=?, - ~max: string=?, + ~onChange: float => unit=?, + ~defaultValue: float=?, + ~value: float=?, + ~min: float=?, + ~max: float=?, ~step: string=?, ~stringMode: bool=?, ) => React.element = "InputNumber" diff --git a/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/.gitignore b/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/gulpfile.js b/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/gulpfile.js new file mode 100755 index 000000000..97d4eec4c --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/gulpfile.js @@ -0,0 +1,23 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish-protocol") + +gulp.task("publish_local_env", function (done) { + publish.publishContributeProtocol( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContributeProtocol( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); diff --git a/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/icon.png b/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/icon.png new file mode 100755 index 000000000..828c6d76a Binary files /dev/null and b/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/icon.png differ diff --git a/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/package.json b/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/package.json new file mode 100755 index 000000000..e3fc878c6 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/package.json @@ -0,0 +1,19 @@ +{ + "name": "meta3d-action-set-gameobjectname-protocol", + "version": "0.20.1", + "description": "", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "author": "Meta3D", + "main": "src/StateType.ts", + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "gulp publish_local_env", + "meta3d:publish_pro": "gulp publish_production_env" + }, + "keywords": [], + "devDependencies": { + "typescript": "^4.2.3" + } +} diff --git a/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/src/EventType.ts b/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/src/EventType.ts new file mode 100755 index 000000000..158b5c824 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/src/EventType.ts @@ -0,0 +1,5 @@ +import { gameObject, name } from "meta3d-gameobject-protocol" + +export const eventName = "SetGameObjectNameEvent" + +export type inputData = [gameObject, name] \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/src/StateType.ts b/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/src/StateType.ts new file mode 100755 index 000000000..ee96a3947 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/src/StateType.ts @@ -0,0 +1,14 @@ +import type { List } from "immutable" +import { gameObject, name } from "meta3d-gameobject-protocol" +import { nullable } from "meta3d-commonlib-ts/src/nullable" +import { text } from "meta3d-ui-control-input-text-protocol" + +export const actionName = "SetGameObjectName" + +export type uiData = text + +export type state = { + allGameObjectNameData: List<[gameObject, nullable]> +} + + diff --git a/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/tsconfig.json b/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/tsconfig.json new file mode 100755 index 000000000..518e066d1 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-gameobjectname-protocol/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/.gitignore b/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/gulpfile.js b/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/gulpfile.js new file mode 100755 index 000000000..97d4eec4c --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/gulpfile.js @@ -0,0 +1,23 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish-protocol") + +gulp.task("publish_local_env", function (done) { + publish.publishContributeProtocol( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContributeProtocol( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); diff --git a/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/icon.png b/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/icon.png new file mode 100755 index 000000000..828c6d76a Binary files /dev/null and b/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/icon.png differ diff --git a/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/package.json b/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/package.json new file mode 100755 index 000000000..171957fa3 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/package.json @@ -0,0 +1,19 @@ +{ + "name": "meta3d-action-set-localeulerangle-protocol", + "version": "0.20.1", + "description": "", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "author": "Meta3D", + "main": "src/StateType.ts", + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "gulp publish_local_env", + "meta3d:publish_pro": "gulp publish_production_env" + }, + "keywords": [], + "devDependencies": { + "typescript": "^4.2.3" + } +} diff --git a/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/src/EventType.ts b/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/src/EventType.ts new file mode 100755 index 000000000..0016b75d7 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/src/EventType.ts @@ -0,0 +1,6 @@ +import { gameObject } from "meta3d-gameobject-protocol" +import { localEulerAngles } from "meta3d-component-transform-protocol" + +export const eventName = "SetLocalEulerAngleEvent" + +export type inputData = [gameObject, localEulerAngles] \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/src/StateType.ts b/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/src/StateType.ts new file mode 100755 index 000000000..3c3cdf0e0 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/src/StateType.ts @@ -0,0 +1,14 @@ +import { localEulerAngles } from "meta3d-component-transform-protocol" +import type { List } from "immutable" +import { gameObject } from "meta3d-gameobject-protocol" +import { float3 } from "meta3d-ui-control-input-float3-protocol" + +export const actionName = "SetLocalEulerAngle" + +export type uiData = float3 + +export type state = { + allLocalEulerAngleData: List<[gameObject, localEulerAngles]> +} + + diff --git a/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/tsconfig.json b/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/tsconfig.json new file mode 100755 index 000000000..518e066d1 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localeulerangle-protocol/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/.gitignore b/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/gulpfile.js b/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/gulpfile.js new file mode 100755 index 000000000..97d4eec4c --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/gulpfile.js @@ -0,0 +1,23 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish-protocol") + +gulp.task("publish_local_env", function (done) { + publish.publishContributeProtocol( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContributeProtocol( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); diff --git a/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/icon.png b/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/icon.png new file mode 100755 index 000000000..828c6d76a Binary files /dev/null and b/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/icon.png differ diff --git a/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/package.json b/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/package.json new file mode 100755 index 000000000..a609a4b57 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/package.json @@ -0,0 +1,19 @@ +{ + "name": "meta3d-action-set-localposition-protocol", + "version": "0.20.1", + "description": "", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "author": "Meta3D", + "main": "src/StateType.ts", + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "gulp publish_local_env", + "meta3d:publish_pro": "gulp publish_production_env" + }, + "keywords": [], + "devDependencies": { + "typescript": "^4.2.3" + } +} diff --git a/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/src/EventType.ts b/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/src/EventType.ts new file mode 100755 index 000000000..e2d51eae1 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/src/EventType.ts @@ -0,0 +1,6 @@ +import { gameObject } from "meta3d-gameobject-protocol" +import { localPosition } from "meta3d-component-transform-protocol" + +export const eventName = "SetLocalPositionEvent" + +export type inputData = [gameObject, localPosition] \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/src/StateType.ts b/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/src/StateType.ts new file mode 100755 index 000000000..34ebee1ab --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/src/StateType.ts @@ -0,0 +1,14 @@ +import { localPosition } from "meta3d-component-transform-protocol" +import type { List } from "immutable" +import { gameObject } from "meta3d-gameobject-protocol" +import { float3 } from "meta3d-ui-control-input-float3-protocol" + +export const actionName = "SetLocalPosition" + +export type uiData = float3 + +export type state = { + allLocalPositionData: List<[gameObject, localPosition]> +} + + diff --git a/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/tsconfig.json b/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/tsconfig.json new file mode 100755 index 000000000..518e066d1 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localposition-protocol/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/.gitignore b/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/gulpfile.js b/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/gulpfile.js new file mode 100755 index 000000000..97d4eec4c --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/gulpfile.js @@ -0,0 +1,23 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish-protocol") + +gulp.task("publish_local_env", function (done) { + publish.publishContributeProtocol( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContributeProtocol( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); diff --git a/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/icon.png b/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/icon.png new file mode 100755 index 000000000..828c6d76a Binary files /dev/null and b/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/icon.png differ diff --git a/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/package.json b/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/package.json new file mode 100755 index 000000000..85f49fdac --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/package.json @@ -0,0 +1,19 @@ +{ + "name": "meta3d-action-set-localscale-protocol", + "version": "0.20.1", + "description": "", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "author": "Meta3D", + "main": "src/StateType.ts", + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "gulp publish_local_env", + "meta3d:publish_pro": "gulp publish_production_env" + }, + "keywords": [], + "devDependencies": { + "typescript": "^4.2.3" + } +} diff --git a/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/src/EventType.ts b/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/src/EventType.ts new file mode 100755 index 000000000..27165f9b3 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/src/EventType.ts @@ -0,0 +1,6 @@ +import { gameObject } from "meta3d-gameobject-protocol" +import { localScale } from "meta3d-component-transform-protocol" + +export const eventName = "SetLocalScaleEvent" + +export type inputData = [gameObject, localScale] \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/src/StateType.ts b/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/src/StateType.ts new file mode 100755 index 000000000..ee972ec75 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/src/StateType.ts @@ -0,0 +1,14 @@ +import { localScale } from "meta3d-component-transform-protocol" +import type { List } from "immutable" +import { gameObject } from "meta3d-gameobject-protocol" +import { float3 } from "meta3d-ui-control-input-float3-protocol" + +export const actionName = "SetLocalScale" + +export type uiData = float3 + +export type state = { + allLocalScaleData: List<[gameObject, localScale]> +} + + diff --git a/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/tsconfig.json b/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/tsconfig.json new file mode 100755 index 000000000..518e066d1 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-action-set-localscale-protocol/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-input-input-float3-protocol/.gitignore b/protocols/contribute_protocols/meta3d-input-input-float3-protocol/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/protocols/contribute_protocols/meta3d-input-input-float3-protocol/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/protocols/contribute_protocols/meta3d-input-input-float3-protocol/gulpfile.js b/protocols/contribute_protocols/meta3d-input-input-float3-protocol/gulpfile.js new file mode 100755 index 000000000..ce0e8ab73 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-input-input-float3-protocol/gulpfile.js @@ -0,0 +1,23 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish-protocol") + +gulp.task("publish_local_env", function (done) { + publish.publishContributeProtocol( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContributeProtocol( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-input-input-float3-protocol/icon.png b/protocols/contribute_protocols/meta3d-input-input-float3-protocol/icon.png new file mode 100755 index 000000000..828c6d76a Binary files /dev/null and b/protocols/contribute_protocols/meta3d-input-input-float3-protocol/icon.png differ diff --git a/protocols/contribute_protocols/meta3d-input-input-float3-protocol/package.json b/protocols/contribute_protocols/meta3d-input-input-float3-protocol/package.json new file mode 100755 index 000000000..7bf5fe082 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-input-input-float3-protocol/package.json @@ -0,0 +1,19 @@ +{ + "name": "meta3d-input-input-float3-protocol", + "version": "0.20.2", + "description": "", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "author": "Meta3D", + "main": "src/Index.ts", + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "gulp publish_local_env", + "meta3d:publish_pro": "gulp publish_production_env" + }, + "keywords": [], + "devDependencies": { + "typescript": "^4.2.3" + } +} diff --git a/protocols/contribute_protocols/meta3d-input-input-float3-protocol/src/Index.ts b/protocols/contribute_protocols/meta3d-input-input-float3-protocol/src/Index.ts new file mode 100755 index 000000000..a253549d2 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-input-input-float3-protocol/src/Index.ts @@ -0,0 +1,6 @@ +import { nullable } from "meta3d-commonlib-ts/src/nullable" +import { inputFunc } from "meta3d-ui-protocol/src/contribute/InputContributeType" + +export type data = nullable<[number, number, number]> + +export type func = inputFunc \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-input-input-float3-protocol/tsconfig.json b/protocols/contribute_protocols/meta3d-input-input-float3-protocol/tsconfig.json new file mode 100755 index 000000000..518e066d1 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-input-input-float3-protocol/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-input-input-text-protocol/.gitignore b/protocols/contribute_protocols/meta3d-input-input-text-protocol/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/protocols/contribute_protocols/meta3d-input-input-text-protocol/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/protocols/contribute_protocols/meta3d-input-input-text-protocol/gulpfile.js b/protocols/contribute_protocols/meta3d-input-input-text-protocol/gulpfile.js new file mode 100755 index 000000000..ce0e8ab73 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-input-input-text-protocol/gulpfile.js @@ -0,0 +1,23 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish-protocol") + +gulp.task("publish_local_env", function (done) { + publish.publishContributeProtocol( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContributeProtocol( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-input-input-text-protocol/icon.png b/protocols/contribute_protocols/meta3d-input-input-text-protocol/icon.png new file mode 100755 index 000000000..828c6d76a Binary files /dev/null and b/protocols/contribute_protocols/meta3d-input-input-text-protocol/icon.png differ diff --git a/protocols/contribute_protocols/meta3d-input-input-text-protocol/package.json b/protocols/contribute_protocols/meta3d-input-input-text-protocol/package.json new file mode 100755 index 000000000..cfc4077fa --- /dev/null +++ b/protocols/contribute_protocols/meta3d-input-input-text-protocol/package.json @@ -0,0 +1,19 @@ +{ + "name": "meta3d-input-input-text-protocol", + "version": "0.20.2", + "description": "", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "author": "Meta3D", + "main": "src/Index.ts", + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "gulp publish_local_env", + "meta3d:publish_pro": "gulp publish_production_env" + }, + "keywords": [], + "devDependencies": { + "typescript": "^4.2.3" + } +} diff --git a/protocols/contribute_protocols/meta3d-input-input-text-protocol/src/Index.ts b/protocols/contribute_protocols/meta3d-input-input-text-protocol/src/Index.ts new file mode 100755 index 000000000..955ab53df --- /dev/null +++ b/protocols/contribute_protocols/meta3d-input-input-text-protocol/src/Index.ts @@ -0,0 +1,8 @@ +import { nullable } from "meta3d-commonlib-ts/src/nullable" +import { inputFunc } from "meta3d-ui-protocol/src/contribute/InputContributeType" + +type text = string + +export type data = nullable + +export type func = inputFunc \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-input-input-text-protocol/tsconfig.json b/protocols/contribute_protocols/meta3d-input-input-text-protocol/tsconfig.json new file mode 100755 index 000000000..518e066d1 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-input-input-text-protocol/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-input-window-protocol/package.json b/protocols/contribute_protocols/meta3d-input-window-protocol/package.json index 4ac1d948d..c2c5e77fc 100755 --- a/protocols/contribute_protocols/meta3d-input-window-protocol/package.json +++ b/protocols/contribute_protocols/meta3d-input-window-protocol/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-input-window-protocol", - "version": "0.20.0", + "version": "0.20.1", "description": "", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "author": "Meta3D", diff --git a/protocols/contribute_protocols/meta3d-input-window-protocol/src/Index.ts b/protocols/contribute_protocols/meta3d-input-window-protocol/src/Index.ts index c257e3bb1..a3802626d 100755 --- a/protocols/contribute_protocols/meta3d-input-window-protocol/src/Index.ts +++ b/protocols/contribute_protocols/meta3d-input-window-protocol/src/Index.ts @@ -1,9 +1,7 @@ import { inputFunc } from "meta3d-ui-protocol/src/contribute/InputContributeType" -import { windowFlags } from "meta3d-imgui-renderer-protocol/src/service/ServiceType" -export type data = { - isShow: boolean, - flags: windowFlags -} +type isShow = boolean + +export type data = isShow export type func = inputFunc \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-ui-control-asset-protocol/package.json b/protocols/contribute_protocols/meta3d-ui-control-asset-protocol/package.json index 50eae18c9..0e5a56e5a 100755 --- a/protocols/contribute_protocols/meta3d-ui-control-asset-protocol/package.json +++ b/protocols/contribute_protocols/meta3d-ui-control-asset-protocol/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-ui-control-asset-protocol", - "version": "0.20.1", + "version": "0.20.2", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "author": "Meta3D", "main": "src/Index.ts", diff --git a/protocols/contribute_protocols/meta3d-ui-control-asset-protocol/src/Index.ts b/protocols/contribute_protocols/meta3d-ui-control-asset-protocol/src/Index.ts index 9950b6201..39e990616 100755 --- a/protocols/contribute_protocols/meta3d-ui-control-asset-protocol/src/Index.ts +++ b/protocols/contribute_protocols/meta3d-ui-control-asset-protocol/src/Index.ts @@ -13,11 +13,6 @@ export type state = { lastFileTextureImageBase64: nullable, } -export type inputData = { - rect: rect, - label: string, -} - export type inputFunc = nullable export type specificData = { diff --git a/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/.gitignore b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/gulpfile.js b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/gulpfile.js new file mode 100755 index 000000000..2fb5dff8d --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/gulpfile.js @@ -0,0 +1,45 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish-protocol") + +gulp.task("publish_local_env", function (done) { + publish.publishContributeProtocol( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContributeProtocol( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); + +gulp.task("publishConfig_local_env", function (done) { + publish.publishContributeProtocolConfig( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + +gulp.task("publishConfig_production_env", function (done) { + publish.publishContributeProtocolConfig( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + + diff --git a/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/icon.png b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/icon.png new file mode 100755 index 000000000..828c6d76a Binary files /dev/null and b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/icon.png differ diff --git a/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/package.json b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/package.json new file mode 100755 index 000000000..625cc0879 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/package.json @@ -0,0 +1,28 @@ +{ + "name": "meta3d-ui-control-collapsing-protocol", + "version": "0.20.2", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "author": "Meta3D", + "main": "src/Index.ts", + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "webpack": "webpack --config webpack.config.js", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publishConfig_local_env && gulp publish_local_env", + "meta3d:publish_pro": "cross-env NODE_ENV=production npm run webpack && gulp publishConfig_production_env &&gulp publish_production_env" + }, + "keywords": [], + "devDependencies": { + "clean-webpack-plugin": "^4.0.0", + "cross-env": "^7.0.3", + "cz-customizable": "^6.3.0", + "gulp": "^4.0.2", + "meta3d-tool-publish": "^0.20.0", + "source-map-loader": "^3.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.2.3", + "webpack": "^5.62.1", + "webpack-cli": "^4.9.1" + } +} diff --git a/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/src/Config.ts b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/src/Config.ts new file mode 100755 index 000000000..8cfd1cc38 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/src/Config.ts @@ -0,0 +1,53 @@ +import { + generateUIControlCommonDataStr as generateUIControlCommonDataStrMeta3D, + getUIControlSpecificDataFields as getUIControlSpecificDataFieldsMeta3D, + hasChildren as hasChildrenMeta3D, + getUIControlSupportedEventNames as getUIControlSupportedEventNamesMeta3D, generateHandleUIControlEventStr as generateHandleUIControlEventStrMeta3D +} from "meta3d-type/src/contribute/UIControlProtocolConfigType" +import { cond } from "meta3d-imgui-renderer-protocol/src/service/ServiceType" + +export let generateUIControlCommonDataStr: generateUIControlCommonDataStrMeta3D = (rect) => { + return "\n {\n rect: " + rect + "}\n " +} + +let _generateUniqueId = () => { + return Math.floor(Math.random() * 1000000.0).toString() +} + +export let getUIControlSpecificDataFields: getUIControlSpecificDataFieldsMeta3D = () => [ + { + name: "label", + type_: "string", + value: "Collapsing##" + _generateUniqueId() + }, + { + name: "isOpen", + type_: "bool", + value: false + }, + { + name: "cond", + type_: "select", + value: { + selected: cond.None, + data: [ + { + key: "None", + value: cond.None + }, + { + key: "Always", + value: cond.Always + } + ] + } + }, +] + +export let hasChildren: hasChildrenMeta3D = () => true + +export let getUIControlSupportedEventNames: getUIControlSupportedEventNamesMeta3D = () => [] + +export let generateHandleUIControlEventStr: generateHandleUIControlEventStrMeta3D = ([]) => { + return "" +} \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/src/Index.ts b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/src/Index.ts new file mode 100755 index 000000000..46392cf1c --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/src/Index.ts @@ -0,0 +1,25 @@ +import { cond } from "meta3d-imgui-renderer-protocol/src/service/ServiceType" +import { state as meta3dState } from "meta3d-type" +import { rect } from "meta3d-type/src/contribute/UIControlProtocolConfigType" + +export const uiControlName = "Collapsing" + +export type state = null + +type childrenFunc = (meta3dState: meta3dState) => Promise + +export type inputFunc = null + +type condSelectValue = { + selected: cond +} + +export type specificData = { + rect: rect, + label: string, + isOpen: boolean, + cond: condSelectValue, + childrenFunc: childrenFunc +} + +export type outputData = null \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/tsconfig.json b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/tsconfig.json new file mode 100755 index 000000000..518e066d1 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/webpack.config.js b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/webpack.config.js new file mode 100755 index 000000000..0bd03b441 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-collapsing-protocol/webpack.config.js @@ -0,0 +1,64 @@ +const path = require('path'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); + +module.exports = { + entry: "./src/Config.ts", + mode: process.env.NODE_ENV.trim() == 'production' ? 'production' : 'development', + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'static/js/[name].js', + library: { + name: 'UIControlProtocolConfig', + type: 'window', + }, + }, + + // Enable sourcemaps for debugging webpack's output. + // devtool: "source-map", + + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'], + modules: ['node_modules'] + }, + + module: { + rules: [ + // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. + { + test: /\.tsx?$/, + exclude: /node_modules/, + use: "ts-loader" + }, + // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. + { + enforce: 'pre', + test: /\.js$/, + loader: "source-map-loader" + }, + ] + }, + plugins: [ + /** + * All files inside webpack's output.path directory will be removed once, but the + * directory itself will not be. If using webpack 4+'s default configuration, + * everything under /dist/ will be removed. + * Use cleanOnceBeforeBuildPatterns to override this behavior. + * + * During rebuilds, all webpack assets that are not used anymore + * will be removed automatically. + * + * See `Options and Defaults` for information + */ + new CleanWebpackPlugin(), + // new HtmlWebpackPlugin({ + // template: './user.html', + // filename: 'user.html', + // }), + ], + // When importing a module whose path matches one of the following, just + // assume a corresponding global variable exists and use that instead. + // This is important because it allows us to avoid bundling all of our + // dependencies, which allows browsers to cache those libraries between builds. + externals: { + } +}; \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/.gitignore b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/gulpfile.js b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/gulpfile.js new file mode 100755 index 000000000..2fb5dff8d --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/gulpfile.js @@ -0,0 +1,45 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish-protocol") + +gulp.task("publish_local_env", function (done) { + publish.publishContributeProtocol( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContributeProtocol( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); + +gulp.task("publishConfig_local_env", function (done) { + publish.publishContributeProtocolConfig( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + +gulp.task("publishConfig_production_env", function (done) { + publish.publishContributeProtocolConfig( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + + diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/icon.png b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/icon.png new file mode 100755 index 000000000..828c6d76a Binary files /dev/null and b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/icon.png differ diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/package.json b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/package.json new file mode 100755 index 000000000..4392cad1f --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/package.json @@ -0,0 +1,28 @@ +{ + "name": "meta3d-ui-control-input-float3-protocol", + "version": "0.20.2", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "author": "Meta3D", + "main": "src/Index.ts", + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "webpack": "webpack --config webpack.config.js", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publishConfig_local_env && gulp publish_local_env", + "meta3d:publish_pro": "cross-env NODE_ENV=production npm run webpack && gulp publishConfig_production_env &&gulp publish_production_env" + }, + "keywords": [], + "devDependencies": { + "clean-webpack-plugin": "^4.0.0", + "cross-env": "^7.0.3", + "cz-customizable": "^6.3.0", + "gulp": "^4.0.2", + "meta3d-tool-publish": "^0.20.0", + "source-map-loader": "^3.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.2.3", + "webpack": "^5.62.1", + "webpack-cli": "^4.9.1" + } +} diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/src/Config.ts b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/src/Config.ts new file mode 100755 index 000000000..ef088f14f --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/src/Config.ts @@ -0,0 +1,51 @@ +import { + generateUIControlCommonDataStr as generateUIControlCommonDataStrMeta3D, + getUIControlSpecificDataFields as getUIControlSpecificDataFieldsMeta3D, + hasChildren as hasChildrenMeta3D, + getUIControlSupportedEventNames as getUIControlSupportedEventNamesMeta3D, generateHandleUIControlEventStr as generateHandleUIControlEventStrMeta3D +} from "meta3d-type/src/contribute/UIControlProtocolConfigType" +import { isNullable } from "meta3d-commonlib-ts/src/NullableUtils" + +export let generateUIControlCommonDataStr: generateUIControlCommonDataStrMeta3D = (rect) => { + return "\n {\n rect: " + rect + "}\n " +} + +let _generateUniqueId = () => { + return Math.floor(Math.random() * 1000000.0).toString() +} + +export let getUIControlSpecificDataFields: getUIControlSpecificDataFieldsMeta3D = () => [ + { + name: "label", + type_: "string", + value: "InputFloat3##" + _generateUniqueId() + }, + { + name: "step", + type_: "number", + value: 0.01 + }, + { + name: "stepFast", + type_: "number", + value: 1.0 + } +] + +export let hasChildren: hasChildrenMeta3D = () => false + +export let getUIControlSupportedEventNames: getUIControlSupportedEventNamesMeta3D = () => ["input_change"] + +export let generateHandleUIControlEventStr: generateHandleUIControlEventStrMeta3D = ([changeActionName]) => { + if (!isNullable(changeActionName)) { + return ` + if (!api.nullable.isNullable(data[1])) { + let { trigger } = api.getExtensionService(meta3dState, "meta3d-event-protocol") + + return trigger(meta3dState, "meta3d-event-protocol", "${changeActionName}", api.nullable.getExn(data[1])) + } + ` + } + + return "" +} \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/src/Index.ts b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/src/Index.ts new file mode 100755 index 000000000..24a070676 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/src/Index.ts @@ -0,0 +1,20 @@ +import { rect } from "meta3d-type/src/contribute/UIControlProtocolConfigType" +import { func } from "meta3d-input-input-float3-protocol" +import { nullable } from "meta3d-commonlib-ts/src/nullable" + +export const uiControlName = "InputFloat3" + +export type state = null + +export type inputFunc = nullable + +export type specificData = { + rect: rect, + label: string, + step: number, + stepFast: number +} + +export type float3 = [number, number, number] + +export type outputData = nullable \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/tsconfig.json b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/tsconfig.json new file mode 100755 index 000000000..518e066d1 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/webpack.config.js b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/webpack.config.js new file mode 100755 index 000000000..0bd03b441 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-input-float3-protocol/webpack.config.js @@ -0,0 +1,64 @@ +const path = require('path'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); + +module.exports = { + entry: "./src/Config.ts", + mode: process.env.NODE_ENV.trim() == 'production' ? 'production' : 'development', + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'static/js/[name].js', + library: { + name: 'UIControlProtocolConfig', + type: 'window', + }, + }, + + // Enable sourcemaps for debugging webpack's output. + // devtool: "source-map", + + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'], + modules: ['node_modules'] + }, + + module: { + rules: [ + // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. + { + test: /\.tsx?$/, + exclude: /node_modules/, + use: "ts-loader" + }, + // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. + { + enforce: 'pre', + test: /\.js$/, + loader: "source-map-loader" + }, + ] + }, + plugins: [ + /** + * All files inside webpack's output.path directory will be removed once, but the + * directory itself will not be. If using webpack 4+'s default configuration, + * everything under /dist/ will be removed. + * Use cleanOnceBeforeBuildPatterns to override this behavior. + * + * During rebuilds, all webpack assets that are not used anymore + * will be removed automatically. + * + * See `Options and Defaults` for information + */ + new CleanWebpackPlugin(), + // new HtmlWebpackPlugin({ + // template: './user.html', + // filename: 'user.html', + // }), + ], + // When importing a module whose path matches one of the following, just + // assume a corresponding global variable exists and use that instead. + // This is important because it allows us to avoid bundling all of our + // dependencies, which allows browsers to cache those libraries between builds. + externals: { + } +}; \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/.gitignore b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/.gitignore new file mode 100755 index 000000000..27f6619fb --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +.merlin +.idea/ +.vscode/ +jest_0/ +reference/ +node_modules/ +mine/ + +coverage + +dist/ + +npm-debug + +.bsb.lock + +yarn.lock + diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/gulpfile.js b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/gulpfile.js new file mode 100755 index 000000000..2fb5dff8d --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/gulpfile.js @@ -0,0 +1,45 @@ +var gulp = require("gulp"); +var path = require("path"); +var publish = require("meta3d-tool-publish-protocol") + +gulp.task("publish_local_env", function (done) { + publish.publishContributeProtocol( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); + +gulp.task("publish_production_env", function (done) { + publish.publishContributeProtocol( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "icon.png") + ).then(() => { + done() + }) +}); + +gulp.task("publishConfig_local_env", function (done) { + publish.publishContributeProtocolConfig( + "local", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + +gulp.task("publishConfig_production_env", function (done) { + publish.publishContributeProtocolConfig( + "production", + path.join(__dirname, "package.json"), + path.join(__dirname, "dist/static/js", "main.js") + ).then(() => { + done() + }) +}); + + diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/icon.png b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/icon.png new file mode 100755 index 000000000..828c6d76a Binary files /dev/null and b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/icon.png differ diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/package.json b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/package.json new file mode 100755 index 000000000..1b81f0728 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/package.json @@ -0,0 +1,28 @@ +{ + "name": "meta3d-ui-control-input-text-protocol", + "version": "0.20.2", + "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", + "author": "Meta3D", + "main": "src/Index.ts", + "license": "MIT", + "scripts": { + "watch": "tsc -w -noEmit", + "webpack": "webpack --config webpack.config.js", + "meta3d:publish_dev_auto": "yarn version --patch --no-git-tag-version && yarn meta3d:publish_dev", + "meta3d:publish_dev": "cross-env NODE_ENV=development npm run webpack && gulp publishConfig_local_env && gulp publish_local_env", + "meta3d:publish_pro": "cross-env NODE_ENV=production npm run webpack && gulp publishConfig_production_env &&gulp publish_production_env" + }, + "keywords": [], + "devDependencies": { + "clean-webpack-plugin": "^4.0.0", + "cross-env": "^7.0.3", + "cz-customizable": "^6.3.0", + "gulp": "^4.0.2", + "meta3d-tool-publish": "^0.20.0", + "source-map-loader": "^3.0.0", + "ts-loader": "^9.2.6", + "typescript": "^4.2.3", + "webpack": "^5.62.1", + "webpack-cli": "^4.9.1" + } +} diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/src/Config.ts b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/src/Config.ts new file mode 100755 index 000000000..110fc43d6 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/src/Config.ts @@ -0,0 +1,46 @@ +import { + generateUIControlCommonDataStr as generateUIControlCommonDataStrMeta3D, + getUIControlSpecificDataFields as getUIControlSpecificDataFieldsMeta3D, + hasChildren as hasChildrenMeta3D, + getUIControlSupportedEventNames as getUIControlSupportedEventNamesMeta3D, generateHandleUIControlEventStr as generateHandleUIControlEventStrMeta3D +} from "meta3d-type/src/contribute/UIControlProtocolConfigType" +import { isNullable } from "meta3d-commonlib-ts/src/NullableUtils" + +export let generateUIControlCommonDataStr: generateUIControlCommonDataStrMeta3D = (rect) => { + return "\n {\n rect: " + rect + "}\n " +} + +let _generateUniqueId = () => { + return Math.floor(Math.random() * 1000000.0).toString() +} + +export let getUIControlSpecificDataFields: getUIControlSpecificDataFieldsMeta3D = () => [ + { + name: "label", + type_: "string", + value: "InputText##" + _generateUniqueId() + }, + { + name: "maxLength", + type_: "number", + value: 35 + } +] + +export let hasChildren: hasChildrenMeta3D = () => false + +export let getUIControlSupportedEventNames: getUIControlSupportedEventNamesMeta3D = () => ["input_change"] + +export let generateHandleUIControlEventStr: generateHandleUIControlEventStrMeta3D = ([changeActionName]) => { + if (!isNullable(changeActionName)) { + return ` + if (!api.nullable.isNullable(data[1])) { + let { trigger } = api.getExtensionService(meta3dState, "meta3d-event-protocol") + + return trigger(meta3dState, "meta3d-event-protocol", "${changeActionName}", api.nullable.getExn(data[1])) + } + ` + } + + return "" +} \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/src/Index.ts b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/src/Index.ts new file mode 100755 index 000000000..caa9ec66d --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/src/Index.ts @@ -0,0 +1,19 @@ +import { rect } from "meta3d-type/src/contribute/UIControlProtocolConfigType" +import { func } from "meta3d-input-input-text-protocol" +import { nullable } from "meta3d-commonlib-ts/src/nullable" + +export const uiControlName = "InputText" + +export type state = null + +export type inputFunc = nullable + +export type specificData = { + rect: rect, + label: string, + maxLength: number +} + +export type text = string + +export type outputData = nullable \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/tsconfig.json b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/tsconfig.json new file mode 100755 index 000000000..518e066d1 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "node", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "jsx": "react", + // "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "lib": [ + "DOM", + "ESNext", + ], + "types": [], + "strict": true + }, + "include": [ + "./src" + ] +} \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/webpack.config.js b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/webpack.config.js new file mode 100755 index 000000000..0bd03b441 --- /dev/null +++ b/protocols/contribute_protocols/meta3d-ui-control-input-text-protocol/webpack.config.js @@ -0,0 +1,64 @@ +const path = require('path'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); + +module.exports = { + entry: "./src/Config.ts", + mode: process.env.NODE_ENV.trim() == 'production' ? 'production' : 'development', + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'static/js/[name].js', + library: { + name: 'UIControlProtocolConfig', + type: 'window', + }, + }, + + // Enable sourcemaps for debugging webpack's output. + // devtool: "source-map", + + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'], + modules: ['node_modules'] + }, + + module: { + rules: [ + // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. + { + test: /\.tsx?$/, + exclude: /node_modules/, + use: "ts-loader" + }, + // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. + { + enforce: 'pre', + test: /\.js$/, + loader: "source-map-loader" + }, + ] + }, + plugins: [ + /** + * All files inside webpack's output.path directory will be removed once, but the + * directory itself will not be. If using webpack 4+'s default configuration, + * everything under /dist/ will be removed. + * Use cleanOnceBeforeBuildPatterns to override this behavior. + * + * During rebuilds, all webpack assets that are not used anymore + * will be removed automatically. + * + * See `Options and Defaults` for information + */ + new CleanWebpackPlugin(), + // new HtmlWebpackPlugin({ + // template: './user.html', + // filename: 'user.html', + // }), + ], + // When importing a module whose path matches one of the following, just + // assume a corresponding global variable exists and use that instead. + // This is important because it allows us to avoid bundling all of our + // dependencies, which allows browsers to cache those libraries between builds. + externals: { + } +}; \ No newline at end of file diff --git a/protocols/contribute_protocols/meta3d-ui-control-tree-protocol/package.json b/protocols/contribute_protocols/meta3d-ui-control-tree-protocol/package.json index 54fbbe0e7..011c8a5d9 100755 --- a/protocols/contribute_protocols/meta3d-ui-control-tree-protocol/package.json +++ b/protocols/contribute_protocols/meta3d-ui-control-tree-protocol/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-ui-control-tree-protocol", - "version": "0.20.1", + "version": "0.20.2", "publisher": "0xf63e1991A343814EdE505D7cfC368615EAe75307", "author": "Meta3D", "main": "src/Index.ts", diff --git a/protocols/contribute_protocols/meta3d-ui-control-tree-protocol/src/Index.ts b/protocols/contribute_protocols/meta3d-ui-control-tree-protocol/src/Index.ts index 1b4c3c438..c33b480c7 100755 --- a/protocols/contribute_protocols/meta3d-ui-control-tree-protocol/src/Index.ts +++ b/protocols/contribute_protocols/meta3d-ui-control-tree-protocol/src/Index.ts @@ -19,11 +19,6 @@ export type state = { lastNodeType3TextureImageBase64: nullable, } -export type inputData = { - rect: rect, - label: string, -} - export type inputFunc = nullable export type specificData = { diff --git a/protocols/contribute_protocols/meta3d-ui-control-window-protocol/package.json b/protocols/contribute_protocols/meta3d-ui-control-window-protocol/package.json index 920d73a38..ac5825eaa 100755 --- a/protocols/contribute_protocols/meta3d-ui-control-window-protocol/package.json +++ b/protocols/contribute_protocols/meta3d-ui-control-window-protocol/package.json @@ -1,6 +1,6 @@ { "name": "meta3d-ui-control-window-protocol", - "version": "0.20.1", + "version": "0.20.3", "displayName": "window protocol", "repoLink": "https://github.com/Meta3D-Technology/Meta3D/tree/master/protocols/contribute_protocols/meta3d-ui-control-window-protocol", "description": "", diff --git a/protocols/contribute_protocols/meta3d-ui-control-window-protocol/src/Config.ts b/protocols/contribute_protocols/meta3d-ui-control-window-protocol/src/Config.ts index 16565986f..83bbb9ab4 100755 --- a/protocols/contribute_protocols/meta3d-ui-control-window-protocol/src/Config.ts +++ b/protocols/contribute_protocols/meta3d-ui-control-window-protocol/src/Config.ts @@ -4,7 +4,7 @@ import { hasChildren as hasChildrenMeta3D, getUIControlSupportedEventNames as getUIControlSupportedEventNamesMeta3D, generateHandleUIControlEventStr as generateHandleUIControlEventStrMeta3D } from "meta3d-type/src/contribute/UIControlProtocolConfigType" -// import { isNullable } from "meta3d-commonlib-ts/src/NullableUtils" +import { windowFlags } from "meta3d-imgui-renderer-protocol/src/service/ServiceType" export let generateUIControlCommonDataStr: generateUIControlCommonDataStrMeta3D = (rect) => { return "\n {\n rect: " + rect + "}\n " @@ -19,7 +19,24 @@ export let getUIControlSpecificDataFields: getUIControlSpecificDataFieldsMeta3D name: "label", type_: "string", value: "Window##" + _generateUniqueId() - } + }, + { + name: "flag", + type_: "select", + value: { + selected: windowFlags.NoTitleBar, + data: [ + { + key: "None", + value: windowFlags.None + }, + { + key: "NoTitleBar", + value: windowFlags.NoTitleBar + } + ] + } + }, ] export let hasChildren: hasChildrenMeta3D = () => true diff --git a/protocols/contribute_protocols/meta3d-ui-control-window-protocol/src/Index.ts b/protocols/contribute_protocols/meta3d-ui-control-window-protocol/src/Index.ts index 489c54c96..ab18f9d7f 100755 --- a/protocols/contribute_protocols/meta3d-ui-control-window-protocol/src/Index.ts +++ b/protocols/contribute_protocols/meta3d-ui-control-window-protocol/src/Index.ts @@ -1,6 +1,8 @@ import { state as meta3dState } from "meta3d-type" import { func } from "meta3d-input-window-protocol" import { rect } from "meta3d-type/src/contribute/UIControlProtocolConfigType" +import { windowFlags } from "meta3d-imgui-renderer-protocol/src/service/ServiceType" +import { nullable } from "meta3d-commonlib-ts/src/nullable" export const uiControlName = "Window" @@ -10,9 +12,14 @@ type childrenFunc = (meta3dState: meta3dState) => Promise export type inputFunc = nullable +type flagSelectValue = { + selected: windowFlags +} + export type specificData = { rect: rect, label: string, + flag: flagSelectValue, childrenFunc: childrenFunc }