Crea un nuovo renderer

Per creare un renderer personalizzato, devi creare una sottoclasse per la classe Renderer. Consulta i documenti sul concetto di renderingr per ulteriori informazioni su cosa sia un renderer e cosa fa.

class CustomRenderer extends Blockly.blockRendering.Renderer {
  constructor() {
    super();
  }
}

Senza alcuna personalizzazione, il renderer predefinito ha il seguente aspetto:

renderer di base

Puoi anche sottoclasse uno degli altri renderer integrati e quindi eseguirne l'override.

class CustomRenderer extends Blockly.thrasos.Renderer {
  constructor() {
    super();
  }
}

Sottoclasse altri componenti del renderer

La forma effettiva del blocco è determinata dai sottocomponenti del renderer.

Per impostazione predefinita, la classe Renderer fornisce versioni funzionanti di tutti i componenti di rendering. In questo modo puoi modificare un singolo componente senza doverti preoccupare degli altri.

Ad esempio, se vuoi modificare le forme delle connessioni, puoi eseguire l'override delle constants senza dover toccare gli altri componenti.

Consulta la documentazione relativa ai componenti di rendering per ulteriori informazioni sulle operazioni svolte da ogni singolo componente.

Override dei metodi di fabbrica

Dopo aver assegnato una sottoclasse ai componenti di rendering, devi eseguire l'override dei metodi di fabbrica di Renderer per i componenti sottoclassificati. Ciò consente al renderer di collegare correttamente i diversi componenti.

Esiste un metodo per ogni tipo di componente:

Registra il renderer

Infine, dopo aver completato la creazione del renderer personalizzato, devi registrarlo. In questo modo il renderer viene associato a una stringa in modo che tu possa passarla alla configurazione di inserimento.

Blockly.blockRendering.register('custom_renderer', CustomRenderer);

const workspace = Blockly.inject(blocklyDiv, {
  renderer: 'custom_renderer',
});