51 lines
1.4 KiB
JavaScript
51 lines
1.4 KiB
JavaScript
import Blockly from "blockly/core";
|
|
import { getColour } from "../helpers/colour";
|
|
import { getCompatibleTypes } from "../helpers/types";
|
|
|
|
Blockly.Blocks["variables_set_dynamic"] = {
|
|
init: function () {
|
|
// const type = myVar.type;
|
|
this.setColour(getColour().variables);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.appendValueInput("VALUE")
|
|
.appendField("set", "set")
|
|
.appendField("", "type")
|
|
.appendField(new Blockly.FieldVariable("VAR"), "VAR")
|
|
.appendField("to");
|
|
},
|
|
onchange: function (e) {
|
|
let variableID = this.getFieldValue("VAR");
|
|
let variable = Blockly.getMainWorkspace()
|
|
.getVariableMap()
|
|
.getVariableById(variableID);
|
|
if (variable !== null) {
|
|
this.getField("type").setValue(variable.type);
|
|
this.getInput("VALUE").setCheck(getCompatibleTypes(variable.type));
|
|
}
|
|
},
|
|
};
|
|
|
|
Blockly.Blocks["variables_get_dynamic"] = {
|
|
init: function () {
|
|
this.setColour(getColour().variables);
|
|
this.appendDummyInput()
|
|
.appendField("", "type")
|
|
.appendField(new Blockly.FieldVariable("VAR"), "VAR");
|
|
this.setOutput(true);
|
|
},
|
|
onchange: function (e) {
|
|
let variableID = this.getFieldValue("VAR");
|
|
let variable = Blockly.getMainWorkspace()
|
|
.getVariableMap()
|
|
.getVariableById(variableID);
|
|
if (variable !== null) {
|
|
this.getField("type").setValue(variable.type);
|
|
}
|
|
},
|
|
};
|
|
|
|
/**
|
|
* new comment
|
|
*/
|