Splat a bunch of modules from elsewhere.
This commit is contained in:
parent
7d728559d0
commit
1b950264d1
11 changed files with 3861 additions and 376 deletions
132
game.js
132
game.js
|
@ -1,71 +1,73 @@
|
|||
window.addEventListener("load", async () => {
|
||||
try {
|
||||
await Scheme.load_main("game.wasm", {}, {
|
||||
window: {
|
||||
get: () => window,
|
||||
innerWidth: () => window.innerWidth,
|
||||
innerHeight: () => window.innerHeight,
|
||||
requestAnimationFrame: (f) => window.requestAnimationFrame(f),
|
||||
setTimeout: (f, delay) => window.setTimeout(f, delay)
|
||||
},
|
||||
document: {
|
||||
get: () => document,
|
||||
body: () => document.body,
|
||||
getElementById: (id) => document.getElementById(id),
|
||||
createTextNode: (text) => document.createTextNode(text),
|
||||
createElement: (tag) => document.createElement(tag)
|
||||
},
|
||||
element: {
|
||||
value: (elem) => elem.value,
|
||||
setValue: (elem, value) => elem.value = value,
|
||||
width: (elem) => elem.width,
|
||||
height: (elem) => elem.height,
|
||||
setWidth: (elem, width) => elem.width = width,
|
||||
setHeight: (elem, height) => elem.height = height,
|
||||
appendChild: (parent, child) => parent.appendChild(child),
|
||||
setAttribute: (elem, name, value) => elem.setAttribute(name, value),
|
||||
removeAttribute: (elem, name) => elem.removeAttribute(name),
|
||||
remove: (elem) => elem.remove(),
|
||||
replaceWith: (oldElem, newElem) => oldElem.replaceWith(newElem),
|
||||
clone: (elem) => elem.cloneNode()
|
||||
},
|
||||
event: {
|
||||
addEventListener: (target, type, listener) => target.addEventListener(type, listener),
|
||||
removeEventListener: (target, type, listener) => target.removeEventListener(type, listener),
|
||||
preventDefault: (event) => event.preventDefault(),
|
||||
keyboardCode: (event) => event.code
|
||||
},
|
||||
image: {
|
||||
new: (src) => {
|
||||
const img = new Image();
|
||||
img.src = src;
|
||||
return img;
|
||||
await Scheme.load_main("game.wasm", {
|
||||
user_imports: {
|
||||
window: {
|
||||
get: () => window,
|
||||
innerWidth: () => window.innerWidth,
|
||||
innerHeight: () => window.innerHeight,
|
||||
requestAnimationFrame: (f) => window.requestAnimationFrame(f),
|
||||
setTimeout: (f, delay) => window.setTimeout(f, delay)
|
||||
},
|
||||
document: {
|
||||
get: () => document,
|
||||
body: () => document.body,
|
||||
getElementById: (id) => document.getElementById(id),
|
||||
createTextNode: (text) => document.createTextNode(text),
|
||||
createElement: (tag) => document.createElement(tag)
|
||||
},
|
||||
element: {
|
||||
value: (elem) => elem.value,
|
||||
setValue: (elem, value) => elem.value = value,
|
||||
width: (elem) => elem.width,
|
||||
height: (elem) => elem.height,
|
||||
setWidth: (elem, width) => elem.width = width,
|
||||
setHeight: (elem, height) => elem.height = height,
|
||||
appendChild: (parent, child) => parent.appendChild(child),
|
||||
setAttribute: (elem, name, value) => elem.setAttribute(name, value),
|
||||
removeAttribute: (elem, name) => elem.removeAttribute(name),
|
||||
remove: (elem) => elem.remove(),
|
||||
replaceWith: (oldElem, newElem) => oldElem.replaceWith(newElem),
|
||||
clone: (elem) => elem.cloneNode()
|
||||
},
|
||||
event: {
|
||||
addEventListener: (target, type, listener) => target.addEventListener(type, listener),
|
||||
removeEventListener: (target, type, listener) => target.removeEventListener(type, listener),
|
||||
preventDefault: (event) => event.preventDefault(),
|
||||
keyboardCode: (event) => event.code
|
||||
},
|
||||
image: {
|
||||
new: (src) => {
|
||||
const img = new Image();
|
||||
img.src = src;
|
||||
return img;
|
||||
}
|
||||
},
|
||||
media: {
|
||||
newAudio: (src) => new Audio(src),
|
||||
play: (media) => media.play(),
|
||||
pause: (media) => media.pause(),
|
||||
volume: (media) => media.volume,
|
||||
setVolume: (media, volume) => media.volume = volume,
|
||||
setLoop: (media, loop) => media.loop = (loop == 1),
|
||||
seek: (media, time) => media.currentTime = time
|
||||
},
|
||||
canvas: {
|
||||
getContext: (elem, type) => elem.getContext(type),
|
||||
setFillColor: (ctx, color) => ctx.fillStyle = color,
|
||||
setFont: (ctx, font) => ctx.font = font,
|
||||
setTextAlign: (ctx, align) => ctx.textAlign = align,
|
||||
clearRect: (ctx, x, y, w, h) => ctx.clearRect(x, y, w, h),
|
||||
fillRect: (ctx, x, y, w, h) => ctx.fillRect(x, y, w, h),
|
||||
fillText: (ctx, text, x, y) => ctx.fillText(text, x, y),
|
||||
drawImage: (ctx, image, sx, sy, sw, sh, dx, dy, dw, dh) => ctx.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh),
|
||||
setScale: (ctx, sx, sy) => ctx.scale(sx, sy),
|
||||
setTransform: (ctx, a, b, c, d, e, f) => ctx.setTransform(a, b, c, d, e, f),
|
||||
setImageSmoothingEnabled: (ctx, enabled) => ctx.imageSmoothingEnabled = (enabled == 1)
|
||||
},
|
||||
math: {
|
||||
random: () => Math.random()
|
||||
}
|
||||
},
|
||||
media: {
|
||||
newAudio: (src) => new Audio(src),
|
||||
play: (media) => media.play(),
|
||||
pause: (media) => media.pause(),
|
||||
volume: (media) => media.volume,
|
||||
setVolume: (media, volume) => media.volume = volume,
|
||||
setLoop: (media, loop) => media.loop = (loop == 1),
|
||||
seek: (media, time) => media.currentTime = time
|
||||
},
|
||||
canvas: {
|
||||
getContext: (elem, type) => elem.getContext(type),
|
||||
setFillColor: (ctx, color) => ctx.fillStyle = color,
|
||||
setFont: (ctx, font) => ctx.font = font,
|
||||
setTextAlign: (ctx, align) => ctx.textAlign = align,
|
||||
clearRect: (ctx, x, y, w, h) => ctx.clearRect(x, y, w, h),
|
||||
fillRect: (ctx, x, y, w, h) => ctx.fillRect(x, y, w, h),
|
||||
fillText: (ctx, text, x, y) => ctx.fillText(text, x, y),
|
||||
drawImage: (ctx, image, sx, sy, sw, sh, dx, dy, dw, dh) => ctx.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh),
|
||||
setScale: (ctx, sx, sy) => ctx.scale(sx, sy),
|
||||
setTransform: (ctx, a, b, c, d, e, f) => ctx.setTransform(a, b, c, d, e, f),
|
||||
setImageSmoothingEnabled: (ctx, enabled) => ctx.imageSmoothingEnabled = (enabled == 1)
|
||||
},
|
||||
math: {
|
||||
random: () => Math.random()
|
||||
}
|
||||
});
|
||||
} catch(e) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue