super-hero/extensions/shader-graph/dist/contributions/scene.js

112 lines
16 KiB
JavaScript
Raw Normal View History

2024-05-29 19:24:12 -07:00
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const preview_scene_1 = tslib_1.__importDefault(require("./preview-scene"));
const shader_graph_1 = tslib_1.__importDefault(require("../importer/shader-graph"));
const effect_header_1 = require("./effect-header");
const effect_utils_1 = require("../effect-utils");
function createSlot(slot) {
const valueDump = cce.Dump.encode.encodeObject(slot.default, { default: slot.default });
return {
default: valueDump.value,
type: slot.type,
connectType: slot.connectType,
display: slot.display,
enum: slot.enum,
registerEnumType: slot.registerEnumType,
registerEnum: slot.registerEnum,
};
}
exports.methods = {
async queryShaderNode() {
const { shaderNodeMap, shaderPropertyMap } = await Editor.Module.importProjectModule('db://shader-graph/graph/index.ts');
const shaderNodeList = new Map();
shaderNodeMap.forEach((nodeDefine) => {
const newNodeDefine = {
type: nodeDefine.type,
extend: nodeDefine.extend,
details: nodeDefine.details,
node: {},
};
nodeDefine.node.inputs?.forEach((slot) => {
if (!newNodeDefine.node.inputs) {
newNodeDefine.node.inputs = [];
}
newNodeDefine.node.inputs.push(createSlot(slot));
});
nodeDefine.node.props?.forEach((slot) => {
if (!newNodeDefine.node.props) {
newNodeDefine.node.props = [];
}
newNodeDefine.node.props.push(createSlot(slot));
});
nodeDefine.node.outputs?.forEach((slot) => {
if (!newNodeDefine.node.outputs) {
newNodeDefine.node.outputs = [];
}
newNodeDefine.node.outputs.push(createSlot(slot));
});
shaderNodeList.set(newNodeDefine.type, newNodeDefine);
});
const shaderPropertyList = new Map();
shaderPropertyMap.forEach((propertyDefine) => {
const valueDump = cce.Dump.encode.encodeObject(propertyDefine.default, { default: propertyDefine.default });
const newPropertyDefine = {
name: propertyDefine.name,
type: propertyDefine.type,
declareType: propertyDefine.declareType,
default: valueDump.value,
details: propertyDefine.details,
outputs: [],
};
propertyDefine.outputs.forEach((slot) => {
newPropertyDefine.outputs.push(createSlot(slot));
});
shaderPropertyList.set(newPropertyDefine.type, newPropertyDefine);
});
return {
shaderNodeList: [...shaderNodeList],
shaderPropertyList: [...shaderPropertyList],
};
},
async queryPropertyValueDumpByType(type, value) {
const { shaderPropertyMap } = await Editor.Module.importProjectModule('db://shader-graph/graph/index.ts');
const propertyDefine = shaderPropertyMap.get(type);
const valueDump = cce.Dump.encode.encodeObject(propertyDefine.default, {});
valueDump.value = value;
return valueDump;
},
async initPreview(config) {
try {
await (0, effect_header_1.addChunks)();
await preview_scene_1.default.init(config);
return true;
}
catch (e) {
console.error(e);
return false;
}
},
async updateMaterial(graphData) {
if (!graphData)
return;
const time = Date.now();
const masterNode = await shader_graph_1.default.generateMasterNode(graphData);
const material = await masterNode.createMaterial(effect_utils_1.buildEffect);
preview_scene_1.default.setMaterial(material);
console.debug('update shader graph material : ' + (Date.now() - time) / 1000);
},
registerEffects(uuid) {
console.debug('registerEffects: ' + uuid);
cce.SceneFacadeManager.registerEffects([uuid]);
},
removeEffects(uuid) {
console.debug('removeEffects:' + uuid);
cce.SceneFacadeManager.removeEffects([uuid]);
},
updateEffect(uuid) {
console.debug('updateEffect:' + uuid);
cce.SceneFacadeManager.updateEffect([uuid]);
},
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJpYnV0aW9ucy9zY2VuZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw0RUFBMkM7QUFJM0Msb0ZBQW1EO0FBRW5ELG1EQUE0QztBQUM1QyxrREFBOEM7QUFJOUMsU0FBUyxVQUFVLENBQUMsSUFBZ0I7SUFDaEMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDeEYsT0FBTztRQUNILE9BQU8sRUFBRSxTQUFTLENBQUMsS0FBSztRQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7UUFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1FBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNmLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7UUFDdkMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO0tBQ2xDLENBQUM7QUFDTixDQUFDO0FBRUQsT0FBTyxDQUFDLE9BQU8sR0FBRztJQUNkLEtBQUssQ0FBQyxlQUFlO1FBQ2pCLE1BQU0sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsa0NBQWtDLENBQW1CLENBQUM7UUFFM0ksTUFBTSxjQUFjLEdBQTRCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDMUQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQXNCLEVBQUUsRUFBRTtZQUM3QyxNQUFNLGFBQWEsR0FBZTtnQkFDOUIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO2dCQUNyQixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07Z0JBQ3pCLE9B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