super-hero/extensions/shader-graph/dist/block-forge/internal/pin-vec3.js

75 lines
8.7 KiB
JavaScript
Raw Normal View History

2024-05-20 20:02:45 -07:00
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
const pin_1 = require("../pin");
class VecPinAction extends pin_1.PinAction {
exec(params) {
const $pin = params.forge.getPinElement(this.detail.blockName, 'input', this.detail.index);
if ($pin) {
// @ts-ignore
const pin = $pin.__pin;
pin.details.value[this.detail.key] = this.detail.target;
pin.onUpdate();
}
}
revertAction() {
return new VecPinAction(this.pin, {
key: this.detail.key,
source: this.detail.target,
target: this.detail.source,
});
}
}
/**
* Vec3
* 布尔类型的引脚
*/
class Vec3Pin extends pin_1.Pin {
constructor() {
super(...arguments);
this.color = '#d0a279';
this.line = 'normal';
this.details = {
value: {
x: 0, y: 0, z: 0,
},
};
this.contentSlot = ``;
this.childrenSlot = [
/*html*/ `<ui-num-input ref="x" label="x"></ui-num-input><ui-num-input ref="y" label="y"></ui-num-input><ui-num-input ref="z" label="z"></ui-num-input>`,
];
this.style = `
.vec3 .slot-children { display: flex; }
.vec3 .slot-children > * { padding: 0 2px;}
.vec3 .slot-children ui-num-input { flex: 1; width: 0; color: white; }
`;
}
onInit() {
const keys = ['x', 'y', 'z'];
keys.forEach((key) => {
const $el = this.refs[key];
$el.value = this.details.value[key] + '';
this.refs[key].addEventListener('confirm', () => {
if (!this.details) {
this.details = { value: { x: 0, y: 0, z: 0 } };
}
// this.details.value[key] = parseFloat($el.value);
const action = new VecPinAction(this, {
key,
source: this.details.value[key],
target: parseFloat($el.value),
});
this.exec(action);
});
});
}
onUpdate() {
const keys = ['x', 'y', 'z'];
keys.forEach((key) => {
const $el = this.refs[key];
$el.value = this.details.value[key] + '';
});
}
}
Vec3Pin.type = 'vec3';
(0, pin_1.declarePin)(Vec3Pin);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluLXZlYzMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmxvY2stZm9yZ2UvaW50ZXJuYWwvcGluLXZlYzMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOztBQUdiLGdDQUFvRDtBQVVwRCxNQUFNLFlBQWEsU0FBUSxlQUl6QjtJQUVFLElBQUksQ0FBQyxNQUVKO1FBQ0csTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0YsSUFBSSxJQUFJLEVBQUU7WUFDTixhQUFhO1lBQ2IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQWdCLENBQUM7WUFDbEMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUN4RCxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDbEI7SUFDTCxDQUFDO0lBRUQsWUFBWTtRQUNSLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM5QixHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHO1lBQ3BCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDMUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtTQUM3QixDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0o7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQVEsU0FBUSxTQUFrQjtJQUF4Qzs7UUFHSSxVQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ2xCLFNBQUksR0FBRyxRQUFRLENBQUM7UUFDaEIsWUFBTyxHQUFHO1lBQ04sS0FBSyxFQUFFO2dCQUNILENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQzthQUNuQjtTQUNKLENBQUM7UUFFRixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixpQkFBWSxHQUFHO1lBQ1gsUUFBUSxDQUFBLCtJQUErSTtTQUMxSixDQUFDO1FBRUYsVUFBSyxHQUFHOzs7O0tBSVAsQ0FBQztJQStCTixDQUFDO0lBN0JHLE1BQU07UUFDRixNQUFNLElBQUksR0FBb0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBcUIsQ0FBQztZQUMvQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUV6QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7aUJBQ2xEO2dCQUNELG1EQUFtRDtnQkFFbkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFO29CQUNsQyxHQUFHO29CQUNILE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0JBQy9CLE1BQU0sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztpQkFDaEMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxRQUFRO1FBQ0osTUFBTSxJQUFJLEdBQW9CLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFCLENBQUM7WUFDL0MsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztBQWpETSxZQUFJLEdBQUcsTUFBTSxDQUFDO0FBbUR6QixJQUFBLGdCQUFVLEVBQUMsT0FBTyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB0eXBlIHsgSFRNTEdyYXBoRm9yZ2VFbGVtZW50IH0gZnJvbSAnLi4vZm9yZ2UnO1xuaW1wb3J0IHsgUGluLCBkZWNsYXJlUGluLCBQaW5BY3Rpb24gfSBmcm9tICcuLi9waW4nO1xuXG50eXBlIFZlYzNQaW5EZXRhaWwgPSB7XG4gICAgdmFsdWU6IHtcbiAgICAgICAgeDogbnVtYmVyLFxuICAgICAgICB5OiBudW1iZXIsXG4gICAgICAgIHo6IG51bWJlcixcbiAgICB9O1xufVxuXG5jbGFzcyBWZWNQaW5BY3Rpb24gZXh0ZW5kcyBQaW5BY3Rpb248e1xuICAgIGtleToga2V5b2YgVmVjM1BpbkRldGFpbFsndmFsdWUnXSxcbiAgICBzb3VyY2U6IG51bWJlcixcbiAgICB0YXJnZXQ6IG51bWJlcixcbn0+IHtcblxuICAgIGV4ZWMocGFyYW1zOiB7XG4gICAgICAgIGZvcmdlOiBIVE1MR3JhcGhGb3JnZUVsZW1lbnRcbiAgICB9KSB7XG4gICAgICAgIGNvbnN0ICRwaW4gPSBwYXJhbXMuZm9yZ2UuZ2V0UGluRWxlbWVudCh0aGlzLmRldGFpbC5ibG9ja05hbWUsICdpbnB1dCcsIHRoaXMuZGV0YWlsLmluZGV4KTtcbiAgICAgICAgaWYgKCRwaW4pIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGNvbnN0IHBpbiA9ICRwaW4uX19waW4gYXMgVmVjM1BpbjtcbiAgICAgICAgICAgIHBpbi5kZXRhaWxzLnZhbHVlW3RoaXMuZGV0YWlsLmtleV0gPSB0aGlzLmRldGFpbC50YXJnZXQ7XG4gICAgICAgICAgICBwaW4ub25VcGRhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldmVydEFjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBWZWNQaW5BY3Rpb24od