-
Notifications
You must be signed in to change notification settings - Fork 0
/
blocks.js
45 lines (39 loc) · 1.07 KB
/
blocks.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Blockly.common.defineBlocks('./blocks/blocks');
let spec = ""
var toolbox = document.getElementById("toolbox");
var options = {
toolbox : toolbox,
collapse : true,
comments : true,
disable : true,
maxBlocks : Infinity,
trashcan : true,
horizontalLayout : false,
toolboxPosition : 'start',
css : true,
media : 'https://blockly-demo.appspot.com/static/media/',
rtl : false,
scrollbars : true,
sounds : true,
oneBasedIndex : true
};
/* Inject workspace */
var workspace = Blockly.inject(document.getElementById("blocklyDiv"), options);
/* Load Workspace Blocks from XML to workspace */
var workspaceBlocks = document.getElementById("workspaceBlocks");
/* Load blocks to workspace */
Blockly.Xml.domToWorkspace(workspaceBlocks, workspace);
const runCode = () => {
const code = tsl.workspaceToCode(workspace);
spec = code
console.log(code);
};
runCode();
// Whenever the workspace changes meaningfully, run the code again.
workspace.addChangeListener((e) => {
if (e.isUiEvent || e.type == Blockly.Events.FINISHED_LOADING ||
workspace.isDragging()) {
return;
}
runCode();
});