meta-next
Version:
54 lines (44 loc) • 733 B
JavaScript
const watchers = {}
const Engine =
{
app: null,
container: null,
canvas: null,
gl: null,
window: null,
camera: null,
defaultSettings: {
width: 0,
height: 0,
antialias: true,
upscale: true
},
on(event, func)
{
const buffer = watchers[event]
if(!buffer) {
watchers[event] = [ func ]
}
else {
buffer.push(func)
}
},
off(event, func)
{
const buffer = watchers[event]
if(!buffer) { return }
const index = buffer.indexOf(func)
if(index === -1) { return }
buffer[index] = buffer[buffer.length - 1]
buffer.pop()
},
emit(event)
{
const buffer = watchers[event]
if(!buffer) { return }
for(let n = 0; n < buffer.length; n++) {
buffer[n]()
}
}
}
export default Engine