add templates
This commit is contained in:
58
app/src/atividades/programacao/exemplo/blocks/blocks.js
Normal file
58
app/src/atividades/programacao/exemplo/blocks/blocks.js
Normal file
@@ -0,0 +1,58 @@
|
||||
"use strict";
|
||||
|
||||
import "blockly/blocks";
|
||||
import { CORES_CUSTOMIZADAS } from "@/blockly/blocklyColors";
|
||||
import { configurarGerador, gerarStatement } from "@/blockly/generator";
|
||||
import { gerarToolboxDeEstrutura } from "@/blockly/toolbox";
|
||||
import { criarBlocoStatementSimples } from "@/blockly/blockFactory";
|
||||
|
||||
// controls_repeat_ext e math_number são blocos nativos do Blockly (não precisam de defineBlocks)
|
||||
const ESTRUTURA_TOOLBOX = [
|
||||
{
|
||||
nome: "Repetição",
|
||||
cssContainer: "cat_repeticao",
|
||||
blocos: ["controls_repeat_ext"],
|
||||
},
|
||||
{
|
||||
nome: "Movimento",
|
||||
cor: CORES_CUSTOMIZADAS.MOVIMENTO,
|
||||
cssContainer: "cat_movimento",
|
||||
blocos: ["exemplo_mover_direita", "exemplo_mover_baixo"],
|
||||
},
|
||||
{
|
||||
nome: "Matemática",
|
||||
cssContainer: "cat_matematica",
|
||||
blocos: ["math_number"],
|
||||
},
|
||||
];
|
||||
|
||||
export const registerBlocks = () => {
|
||||
defineBlocks();
|
||||
defineGenerators();
|
||||
};
|
||||
|
||||
export const generateDynamicToolbox = (allowedBlocks = []) => {
|
||||
return gerarToolboxDeEstrutura(ESTRUTURA_TOOLBOX, allowedBlocks);
|
||||
};
|
||||
|
||||
const defineBlocks = () => {
|
||||
criarBlocoStatementSimples(
|
||||
"exemplo_mover_direita",
|
||||
"mover para DIREITA",
|
||||
CORES_CUSTOMIZADAS.MOVIMENTO
|
||||
);
|
||||
|
||||
criarBlocoStatementSimples(
|
||||
"exemplo_mover_baixo",
|
||||
"mover para BAIXO",
|
||||
CORES_CUSTOMIZADAS.MOVIMENTO
|
||||
);
|
||||
};
|
||||
|
||||
const defineGenerators = () => {
|
||||
// Ativa o prefix de highlight no gerador (necessário para feedback visual dos blocos)
|
||||
configurarGerador();
|
||||
|
||||
gerarStatement("exemplo_mover_direita", "moverDireita");
|
||||
gerarStatement("exemplo_mover_baixo", "moverBaixo");
|
||||
};
|
||||
Reference in New Issue
Block a user