From 05151d81628941fb97290f04be785b4fb116d739 Mon Sep 17 00:00:00 2001 From: klangner Date: Sun, 13 Sep 2020 14:43:59 +0200 Subject: [PATCH] New demo working --- demo/src/lib.rs | 20 +++++++++++++++----- docs/0.bootstrap.js | 6 +++--- docs/bf853f7fb17b7aed38db.module.wasm | Bin 0 -> 41033 bytes docs/bootstrap.js | 2 +- docs/e746eb2fb67992eff455.module.wasm | Bin 40976 -> 0 bytes docs/f138b06b088ae74c6a29.module.wasm | Bin 17489 -> 0 bytes 6 files changed, 19 insertions(+), 9 deletions(-) create mode 100644 docs/bf853f7fb17b7aed38db.module.wasm delete mode 100644 docs/e746eb2fb67992eff455.module.wasm delete mode 100644 docs/f138b06b088ae74c6a29.module.wasm diff --git a/demo/src/lib.rs b/demo/src/lib.rs index 2d00577..993c453 100644 --- a/demo/src/lib.rs +++ b/demo/src/lib.rs @@ -3,7 +3,7 @@ use rand::prelude::*; use js_sys::Date; use mapgen::dungeon::{ MapBuilder, - map::Map, + map::TileType, cellular_automata::CellularAutomataGen, starting_point::{AreaStartingPosition, XStart, YStart}, cull_unreachable::CullUnreachable, @@ -13,7 +13,9 @@ use mapgen::dungeon::{ #[wasm_bindgen] pub struct World { - map: Map, + width: u32, + height: u32, + tiles: Vec, } #[wasm_bindgen] @@ -26,15 +28,23 @@ impl World { .with(CullUnreachable::new()) .with(DistantExit::new()) .build_map_with_rng(&mut rng); - World { map } + let tiles = (0..map.tiles.len()).map(|i| map.tiles[i] == TileType::Floor).collect(); + World { + width, + height, + tiles } } pub fn width(&self) -> u32 { - self.map.width as u32 + self.width } pub fn height(&self) -> u32 { - self.map.height as u32 + self.height + } + + pub fn tiles(&self) -> *const bool { + self.tiles.as_ptr() } } diff --git a/docs/0.bootstrap.js b/docs/0.bootstrap.js index 8d82562..e0ae0ba 100644 --- a/docs/0.bootstrap.js +++ b/docs/0.bootstrap.js @@ -20,7 +20,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _map /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(module) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"World\", function() { return World; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbindgen_object_drop_ref\", function() { return __wbindgen_object_drop_ref; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_getTime_29addd71c7089c47\", function() { return __wbg_getTime_29addd71c7089c47; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_new0_a3af66503e735141\", function() { return __wbg_new0_a3af66503e735141; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbindgen_throw\", function() { return __wbindgen_throw; });\n/* harmony import */ var _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mapgen_demo_bg.wasm */ \"../pkg/mapgen_demo_bg.wasm\");\n\n\nconst heap = new Array(32).fill(undefined);\n\nheap.push(undefined, null, true, false);\n\nfunction getObject(idx) { return heap[idx]; }\n\nlet heap_next = heap.length;\n\nfunction dropObject(idx) {\n if (idx < 36) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nconst lTextDecoder = typeof TextDecoder === 'undefined' ? (0, module.require)('util').TextDecoder : TextDecoder;\n\nlet cachedTextDecoder = new lTextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachegetUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"memory\"].buffer) {\n cachegetUint8Memory0 = new Uint8Array(_mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"memory\"].buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n/**\n*/\nclass World {\n\n static __wrap(ptr) {\n const obj = Object.create(World.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n free() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"__wbg_world_free\"](ptr);\n }\n /**\n * @param {number} width\n * @param {number} height\n * @returns {World}\n */\n static new(width, height) {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_new\"](width, height);\n return World.__wrap(ret);\n }\n /**\n * @returns {number}\n */\n width() {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_width\"](this.ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n height() {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_height\"](this.ptr);\n return ret >>> 0;\n }\n}\n\nconst __wbindgen_object_drop_ref = function(arg0) {\n takeObject(arg0);\n};\n\nconst __wbg_getTime_29addd71c7089c47 = function(arg0) {\n var ret = getObject(arg0).getTime();\n return ret;\n};\n\nconst __wbg_new0_a3af66503e735141 = function() {\n var ret = new Date();\n return addHeapObject(ret);\n};\n\nconst __wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n};\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../www/node_modules/webpack/buildin/harmony-module.js */ \"./node_modules/webpack/buildin/harmony-module.js\")(module)))\n\n//# sourceURL=webpack:///../pkg/mapgen_demo_bg.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(module) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"World\", function() { return World; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbindgen_object_drop_ref\", function() { return __wbindgen_object_drop_ref; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_getTime_29addd71c7089c47\", function() { return __wbg_getTime_29addd71c7089c47; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_new0_a3af66503e735141\", function() { return __wbg_new0_a3af66503e735141; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbindgen_throw\", function() { return __wbindgen_throw; });\n/* harmony import */ var _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mapgen_demo_bg.wasm */ \"../pkg/mapgen_demo_bg.wasm\");\n\n\nconst heap = new Array(32).fill(undefined);\n\nheap.push(undefined, null, true, false);\n\nfunction getObject(idx) { return heap[idx]; }\n\nlet heap_next = heap.length;\n\nfunction dropObject(idx) {\n if (idx < 36) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nconst lTextDecoder = typeof TextDecoder === 'undefined' ? (0, module.require)('util').TextDecoder : TextDecoder;\n\nlet cachedTextDecoder = new lTextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachegetUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"memory\"].buffer) {\n cachegetUint8Memory0 = new Uint8Array(_mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"memory\"].buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n/**\n*/\nclass World {\n\n static __wrap(ptr) {\n const obj = Object.create(World.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n free() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"__wbg_world_free\"](ptr);\n }\n /**\n * @param {number} width\n * @param {number} height\n * @returns {World}\n */\n static new(width, height) {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_new\"](width, height);\n return World.__wrap(ret);\n }\n /**\n * @returns {number}\n */\n width() {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_width\"](this.ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n height() {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_height\"](this.ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n tiles() {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_tiles\"](this.ptr);\n return ret;\n }\n}\n\nconst __wbindgen_object_drop_ref = function(arg0) {\n takeObject(arg0);\n};\n\nconst __wbg_getTime_29addd71c7089c47 = function(arg0) {\n var ret = getObject(arg0).getTime();\n return ret;\n};\n\nconst __wbg_new0_a3af66503e735141 = function() {\n var ret = new Date();\n return addHeapObject(ret);\n};\n\nconst __wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n};\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../www/node_modules/webpack/buildin/harmony-module.js */ \"./node_modules/webpack/buildin/harmony-module.js\")(module)))\n\n//# sourceURL=webpack:///../pkg/mapgen_demo_bg.js?"); /***/ }), @@ -28,7 +28,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(f /*!**********************************!*\ !*** ../pkg/mapgen_demo_bg.wasm ***! \**********************************/ -/*! exports provided: memory, __wbg_world_free, world_new, world_width, world_height */ +/*! exports provided: memory, __wbg_world_free, world_new, world_width, world_height, world_tiles */ /***/ (function(module, exports, __webpack_require__) { eval("\"use strict\";\n// Instantiate WebAssembly module\nvar wasmExports = __webpack_require__.w[module.i];\n__webpack_require__.r(exports);\n// export exports from WebAssembly module\nfor(var name in wasmExports) if(name != \"__webpack_init__\") exports[name] = wasmExports[name];\n// exec imports from WebAssembly module (for esm order)\n/* harmony import */ var m0 = __webpack_require__(/*! ./mapgen_demo_bg.js */ \"../pkg/mapgen_demo_bg.js\");\n\n\n// exec wasm module\nwasmExports[\"__webpack_init__\"]()\n\n//# sourceURL=webpack:///../pkg/mapgen_demo_bg.wasm?"); @@ -43,7 +43,7 @@ eval("\"use strict\";\n// Instantiate WebAssembly module\nvar wasmExports = __we /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var mapgen_demo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mapgen-demo */ \"../pkg/mapgen_demo.js\");\n/* harmony import */ var mapgen_demo_mapgen_demo_bg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mapgen-demo/mapgen_demo_bg */ \"../pkg/mapgen_demo_bg.wasm\");\n\n\n\nconst CELL_SIZE = 8; // px\nconst GRID_COLOR = \"#CCCCCC\";\nconst DEAD_COLOR = \"#FFFFFF\";\nconst ALIVE_COLOR = \"#000000\";\n\nconst world = mapgen_demo__WEBPACK_IMPORTED_MODULE_0__[\"World\"].new(80, 50);\nconst width = world.width();\nconst height = world.height();\n\n// Give the canvas room for all of our cells and a 1px border\n// around each of them.\nconst canvas = document.getElementById(\"mapgen-canvas\");\ncanvas.height = (CELL_SIZE + 1) * height + 1;\ncanvas.width = (CELL_SIZE + 1) * width + 1;\n\nconst ctx = canvas.getContext('2d');\n\nconst renderLoop = () => {\n // universe.tick();\n\n drawGrid();\n // drawCells();\n\n requestAnimationFrame(renderLoop);\n};\n\nconst drawGrid = () => {\n ctx.beginPath();\n ctx.strokeStyle = GRID_COLOR;\n\n // Vertical lines.\n for (let i = 0; i <= width; i++) {\n ctx.moveTo(i * (CELL_SIZE + 1) + 1, 0);\n ctx.lineTo(i * (CELL_SIZE + 1) + 1, (CELL_SIZE + 1) * height + 1);\n }\n\n // Horizontal lines.\n for (let j = 0; j <= height; j++) {\n ctx.moveTo(0, j * (CELL_SIZE + 1) + 1);\n ctx.lineTo((CELL_SIZE + 1) * width + 1, j * (CELL_SIZE + 1) + 1);\n }\n\n ctx.stroke();\n};\n\nconst getIndex = (row, column) => {\n return row * width + column;\n};\n\n// const drawCells = () => {\n// const cellsPtr = universe.cells();\n// const cells = new Uint8Array(memory.buffer, cellsPtr, width * height);\n\n// ctx.beginPath();\n\n// for (let row = 0; row < height; row++) {\n// for (let col = 0; col < width; col++) {\n// const idx = getIndex(row, col);\n\n// ctx.fillStyle = cells[idx] === Cell.Dead\n// ? DEAD_COLOR\n// : ALIVE_COLOR;\n\n// ctx.fillRect(\n// col * (CELL_SIZE + 1) + 1,\n// row * (CELL_SIZE + 1) + 1,\n// CELL_SIZE,\n// CELL_SIZE\n// );\n// }\n// }\n\n// ctx.stroke();\n// };\n\ndrawGrid();\n// drawCells();\nrequestAnimationFrame(renderLoop);\n\n//# sourceURL=webpack:///./index.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var mapgen_demo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mapgen-demo */ \"../pkg/mapgen_demo.js\");\n/* harmony import */ var mapgen_demo_mapgen_demo_bg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mapgen-demo/mapgen_demo_bg */ \"../pkg/mapgen_demo_bg.wasm\");\n\n\n\nconst CELL_SIZE = 12;\nconst GRID_COLOR = \"#CCCCCC\";\nconst DEAD_COLOR = \"#FFFFFF\";\nconst ALIVE_COLOR = \"#000000\";\n\nconst world = mapgen_demo__WEBPACK_IMPORTED_MODULE_0__[\"World\"].new(80, 50);\nconst width = world.width();\nconst height = world.height();\n\n// Give the canvas room for all of our cells and a 1px border\n// around each of them.\nconst canvas = document.getElementById(\"mapgen-canvas\");\ncanvas.height = (CELL_SIZE + 1) * height + 1;\ncanvas.width = (CELL_SIZE + 1) * width + 1;\n\nconst ctx = canvas.getContext('2d');\n\nconst renderLoop = () => {\n // universe.tick();\n\n drawGrid();\n drawCells();\n\n requestAnimationFrame(renderLoop);\n};\n\nconst drawGrid = () => {\n ctx.beginPath();\n ctx.strokeStyle = GRID_COLOR;\n\n // Vertical lines.\n for (let i = 0; i <= width; i++) {\n ctx.moveTo(i * (CELL_SIZE + 1) + 1, 0);\n ctx.lineTo(i * (CELL_SIZE + 1) + 1, (CELL_SIZE + 1) * height + 1);\n }\n\n // Horizontal lines.\n for (let j = 0; j <= height; j++) {\n ctx.moveTo(0, j * (CELL_SIZE + 1) + 1);\n ctx.lineTo((CELL_SIZE + 1) * width + 1, j * (CELL_SIZE + 1) + 1);\n }\n\n ctx.stroke();\n};\n\nconst getIndex = (row, column) => {\n return row * width + column;\n};\n\nconst drawCells = () => {\n const tilesPtr = world.tiles();\n const tiles = new Uint8Array(mapgen_demo_mapgen_demo_bg__WEBPACK_IMPORTED_MODULE_1__[\"memory\"].buffer, tilesPtr, width * height);\n\n ctx.beginPath();\n\n for (let row = 0; row < height; row++) {\n for (let col = 0; col < width; col++) {\n const idx = getIndex(row, col);\n\n ctx.fillStyle = tiles[idx]\n ? DEAD_COLOR\n : ALIVE_COLOR;\n\n ctx.fillRect(\n col * (CELL_SIZE + 1) + 1,\n row * (CELL_SIZE + 1) + 1,\n CELL_SIZE,\n CELL_SIZE\n );\n }\n }\n\n ctx.stroke();\n};\n\ndrawGrid();\ndrawCells();\nrequestAnimationFrame(renderLoop);\n\n//# sourceURL=webpack:///./index.js?"); /***/ }), diff --git a/docs/bf853f7fb17b7aed38db.module.wasm b/docs/bf853f7fb17b7aed38db.module.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3874075a043f54a8b8e51db66c2ce6702a0f3177 GIT binary patch literal 41033 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 OVu)}V8{IrU`Tql&j@>5! literal 0 HcmV?d00001 diff --git a/docs/bootstrap.js b/docs/bootstrap.js index 2a48f55..a792eb6 100644 --- a/docs/bootstrap.js +++ b/docs/bootstrap.js @@ -168,7 +168,7 @@ /******/ promises.push(installedWasmModuleData); /******/ else { /******/ var importObject = wasmImportObjects[wasmModuleId](); -/******/ var req = fetch(__webpack_require__.p + "" + {"../pkg/mapgen_demo_bg.wasm":"e746eb2fb67992eff455"}[wasmModuleId] + ".module.wasm"); +/******/ var req = fetch(__webpack_require__.p + "" + {"../pkg/mapgen_demo_bg.wasm":"bf853f7fb17b7aed38db"}[wasmModuleId] + ".module.wasm"); /******/ var promise; /******/ if(importObject instanceof Promise && typeof WebAssembly.compileStreaming === 'function') { /******/ promise = Promise.all([WebAssembly.compileStreaming(req), importObject]).then(function(items) { diff --git a/docs/e746eb2fb67992eff455.module.wasm b/docs/e746eb2fb67992eff455.module.wasm deleted file mode 100644 index 9daeebef6bd30c032530c64e72ec7ea42cee1b68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40976 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