Skip to content

gsteinLTU/netsblox-extension-rs

Repository files navigation

Rust-based NetsBlox extension generator

This repository contains an example of a WASM-based NetsBlox extension and code for the two crates used to make this possible.

The index.js file for the extension is generated by a build script. For example, to add a custom block, in the source lib.rs you could use:

#[wasm_bindgen]
#[netsblox_extension_block(name = "logHelloWorld", category = "Hello World", spec = "Log Hello World!", target = netsblox_extension_util::TargetObject::Both)]
pub fn hello_world() {
    console::log_1(&"Hello World!".to_owned().into());
}

And in the extension file, the following will be generated:

new Extension.Block(
    'logHelloWorld',
    'command',
    'Hello World',
    'Log Hello World!',
    [],
    function () { return ExampleExtension_fns.hello_world(); }
).for(SpriteMorph, StageMorph),

The other sections of the file will be generated to match, allowing the block to be used when the extension is loaded. The ExampleExtension_fns object contains the functions used by the extension (in this case, named 'ExampleExtension')

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •