29 lines
1.1 KiB
TypeScript
29 lines
1.1 KiB
TypeScript
import * as Blockly from "blockly";
|
|
import { Order } from "blockly/javascript";
|
|
import type { BlockDef } from "../toolbox";
|
|
|
|
export const dposValue: BlockDef = {
|
|
category: 'Values',
|
|
block: {
|
|
init(this: Blockly.Block) {
|
|
this.appendDummyInput()
|
|
.appendField('Direction [')
|
|
.appendField(new Blockly.FieldNumber(0, -Infinity, Infinity, 0.01), 'X')
|
|
.appendField(',')
|
|
.appendField(new Blockly.FieldNumber(0, -Infinity, Infinity, 0.01), 'Y')
|
|
.appendField(',')
|
|
.appendField(new Blockly.FieldNumber(0, -Infinity, Infinity, 0.01), 'Z');
|
|
this.appendDummyInput().appendField(']');
|
|
this.setInputsInline(true);
|
|
this.setOutput(true, 'DPos');
|
|
this.setTooltip('Direction [dx,dy,dz]');
|
|
}
|
|
},
|
|
code(block, _generator) {
|
|
const x = block.getFieldValue('X');
|
|
const y = block.getFieldValue('Y');
|
|
const z = block.getFieldValue('Z');
|
|
return [`[${x},${y},${z}]`, Order.ATOMIC];
|
|
}
|
|
};
|