Skip to content

Instantly share code, notes, and snippets.

@luizbills
Last active June 26, 2025 20:16
Show Gist options
  • Save luizbills/12ee7520d89e61109897010df8d3a5a5 to your computer and use it in GitHub Desktop.
Save luizbills/12ee7520d89e61109897010df8d3a5a5 to your computer and use it in GitHub Desktop.
Plugin to reset a litecanvas' instance

Reset for Litecanvas

Plugin to reset a litecanvas' instance.

Usage

let e = litecanvas({})
let c = 0

function init(instance) {
  e = instance

  e.use(pluginReset)

  // new event
  e.listen('reset', (hard) => {
    alert(`reseted ${++c} times`)
  })
}

function update() {
  if (e.iskeydown('R')){
    e.reset()
  }
}

function draw() {
  e.cls(0)
  e.circfill(W/2, H/2, T*20, 3)
  e.text(0, 0, 'press R to reset')
}

LICENSE

MIT License © 2025 Luiz Bills

/**
* @version 1.2.0
* @see https://gist.github.com/luizbills/12ee7520d89e61109897010df8d3a5a5
*/
function pluginReset(engine, config = {}) {
return {
reset(hard = false) {
const settings = engine.stat(0)
settings.canvas = engine.canvas()
engine.quit()
const newInstance = litecanvas(settings)
if (newInstance.boot) {
newInstance.boot(newInstance)
}
newInstance.listen('after:init', () => {
newInstance.emit('reset', hard);
})
}
}
}