"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"); };