From 416cd633eb41da74e88018e8335ca8636aea22f1 Mon Sep 17 00:00:00 2001 From: klangner Date: Tue, 22 Sep 2020 20:54:19 +0200 Subject: [PATCH] updated demo --- demo/README.md | 2 +- demo/src/lib.rs | 35 +++++++++++++------------- docs/0.bootstrap.js | 6 ++--- docs/5a858ffd967a1d3be2df.module.wasm | Bin 0 -> 97344 bytes docs/bootstrap.js | 2 +- docs/index.html | 1 + 6 files changed, 24 insertions(+), 22 deletions(-) create mode 100644 docs/5a858ffd967a1d3be2df.module.wasm diff --git a/demo/README.md b/demo/README.md index d9669b8..5d70049 100644 --- a/demo/README.md +++ b/demo/README.md @@ -5,7 +5,7 @@ ``` wasm-pack build cd www -npm run build +npm run start ``` This app uses: diff --git a/demo/src/lib.rs b/demo/src/lib.rs index 774c3b3..193457c 100644 --- a/demo/src/lib.rs +++ b/demo/src/lib.rs @@ -1,19 +1,16 @@ use wasm_bindgen::prelude::*; use web_sys; use rand::prelude::*; -use mapgen::{ - map_builder::{ - MapBuilder, - cellular_automata::CellularAutomataGen, - simple_rooms::SimpleRoomsGen, - bsp_interior::BspInteriorGen, - starting_point::{AreaStartingPosition, XStart, YStart}, - cull_unreachable::CullUnreachable, - distant_exit::DistantExit, - rooms_corridors_nearest::NearestCorridors, - drunkard::DrunkardsWalkGen, - }, - map::TileType, +use mapgen::{MapBuilder, TileType}; +use mapgen::filter::{ + CellularAutomata, + SimpleRooms, + BspInterior, + {AreaStartingPosition, XStart, YStart}, + CullUnreachable, + DistantExit, + NearestCorridors, + DrunkardsWalk, }; @@ -38,7 +35,8 @@ impl World { pub fn new_cellular_automata(width: u32, height: u32, seed: u32) -> World { World::print_map_info(format!("Cellular Automata with the seed: {}", seed)); let mut rng = StdRng::seed_from_u64(seed as u64); - let map = MapBuilder::new(CellularAutomataGen::new()) + let map = MapBuilder::new() + .with(CellularAutomata::new()) .with(AreaStartingPosition::new(XStart::CENTER, YStart::CENTER)) .with(CullUnreachable::new()) .with(DistantExit::new()) @@ -55,7 +53,8 @@ impl World { pub fn new_simple_rooms(width: u32, height: u32, seed: u32) -> World { World::print_map_info(format!("Simple Rooms with the seed: {}", seed)); let mut rng = StdRng::seed_from_u64(seed as u64); - let map = MapBuilder::new(SimpleRoomsGen::new()) + let map = MapBuilder::new() + .with(SimpleRooms::new()) .with(NearestCorridors::new()) .build_map_with_rng(width as usize, height as usize, &mut rng); let tiles = (0..map.tiles.len()) @@ -70,7 +69,8 @@ impl World { pub fn new_bsp_interior(width: u32, height: u32, seed: u32) -> World { World::print_map_info(format!("BSP Interior with the seed: {}", seed)); let mut rng = StdRng::seed_from_u64(seed as u64); - let map = MapBuilder::new(BspInteriorGen::new()) + let map = MapBuilder::new() + .with(BspInterior::new()) .build_map_with_rng(width as usize, height as usize, &mut rng); let tiles = (0..map.tiles.len()) .map(|i| if map.tiles[i] == TileType::Floor {Cell::Floor} else {Cell::Wall}) @@ -84,7 +84,8 @@ impl World { pub fn new_drunkard(width: u32, height: u32, seed: u32) -> World { World::print_map_info(format!("Drunkard with the seed: {}", seed)); let mut rng = StdRng::seed_from_u64(seed as u64); - let map = MapBuilder::new(DrunkardsWalkGen::open_halls()) + let map = MapBuilder::new() + .with(DrunkardsWalk::open_halls()) .build_map_with_rng(width as usize, height as usize, &mut rng); let tiles = (0..map.tiles.len()) .map(|i| if map.tiles[i] == TileType::Floor {Cell::Floor} else {Cell::Wall}) diff --git a/docs/0.bootstrap.js b/docs/0.bootstrap.js index 3024424..a232c4b 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, global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Cell\", function() { return Cell; });\n/* 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_getRandomValues_3ac1b33c90b52596\", function() { return __wbg_getRandomValues_3ac1b33c90b52596; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_randomFillSync_6f956029658662ec\", function() { return __wbg_randomFillSync_6f956029658662ec; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_self_1c83eb4471d9eb9b\", function() { return __wbg_self_1c83eb4471d9eb9b; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_static_accessor_MODULE_abf5ae284bffdf45\", function() { return __wbg_static_accessor_MODULE_abf5ae284bffdf45; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_require_5b2b5b594d809d9f\", function() { return __wbg_require_5b2b5b594d809d9f; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_crypto_c12f14e810edcaa2\", function() { return __wbg_crypto_c12f14e810edcaa2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_msCrypto_679be765111ba775\", function() { return __wbg_msCrypto_679be765111ba775; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbindgen_is_undefined\", function() { return __wbindgen_is_undefined; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_getRandomValues_05a60bf171bfc2be\", function() { return __wbg_getRandomValues_05a60bf171bfc2be; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_instanceof_Window_adf3196bdc02b386\", function() { return __wbg_instanceof_Window_adf3196bdc02b386; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_document_6cc8d0b87c0a99b9\", function() { return __wbg_document_6cc8d0b87c0a99b9; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_getElementById_0cb6ad9511b1efc0\", function() { return __wbg_getElementById_0cb6ad9511b1efc0; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_setinnerHTML_4ff235db1a3cb4d8\", function() { return __wbg_setinnerHTML_4ff235db1a3cb4d8; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_call_8e95613cc6524977\", function() { return __wbg_call_8e95613cc6524977; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbindgen_object_clone_ref\", function() { return __wbindgen_object_clone_ref; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_newnoargs_f3b8a801d5d4b079\", function() { return __wbg_newnoargs_f3b8a801d5d4b079; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_self_07b2f89e82ceb76d\", function() { return __wbg_self_07b2f89e82ceb76d; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_window_ba85d88572adc0dc\", function() { return __wbg_window_ba85d88572adc0dc; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_globalThis_b9277fc37e201fe5\", function() { return __wbg_globalThis_b9277fc37e201fe5; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_global_e16303fe83e1d57f\", function() { return __wbg_global_e16303fe83e1d57f; });\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\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\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 handleError(f) {\n return function () {\n try {\n return f.apply(this, arguments);\n\n } catch (e) {\n _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"__wbindgen_exn_store\"](addHeapObject(e));\n }\n };\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n/**\n*/\nconst Cell = Object.freeze({ Floor:0,\"0\":\"Floor\",Wall:1,\"1\":\"Wall\", });\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 * @param {number} seed\n * @returns {World}\n */\n static new_cellular_automata(width, height, seed) {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_new_cellular_automata\"](width, height, seed);\n return World.__wrap(ret);\n }\n /**\n * @param {number} width\n * @param {number} height\n * @param {number} seed\n * @returns {World}\n */\n static new_simple_rooms(width, height, seed) {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_new_simple_rooms\"](width, height, seed);\n return World.__wrap(ret);\n }\n /**\n * @param {number} width\n * @param {number} height\n * @param {number} seed\n * @returns {World}\n */\n static new_bsp_interior(width, height, seed) {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_new_bsp_interior\"](width, height, seed);\n return World.__wrap(ret);\n }\n /**\n * @param {number} width\n * @param {number} height\n * @param {number} seed\n * @returns {World}\n */\n static new_random(width, height, seed) {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_new_random\"](width, height, seed);\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_getRandomValues_3ac1b33c90b52596 = function(arg0, arg1, arg2) {\n getObject(arg0).getRandomValues(getArrayU8FromWasm0(arg1, arg2));\n};\n\nconst __wbg_randomFillSync_6f956029658662ec = function(arg0, arg1, arg2) {\n getObject(arg0).randomFillSync(getArrayU8FromWasm0(arg1, arg2));\n};\n\nconst __wbg_self_1c83eb4471d9eb9b = handleError(function() {\n var ret = self.self;\n return addHeapObject(ret);\n});\n\nconst __wbg_static_accessor_MODULE_abf5ae284bffdf45 = function() {\n var ret = module;\n return addHeapObject(ret);\n};\n\nconst __wbg_require_5b2b5b594d809d9f = function(arg0, arg1, arg2) {\n var ret = getObject(arg0).require(getStringFromWasm0(arg1, arg2));\n return addHeapObject(ret);\n};\n\nconst __wbg_crypto_c12f14e810edcaa2 = function(arg0) {\n var ret = getObject(arg0).crypto;\n return addHeapObject(ret);\n};\n\nconst __wbg_msCrypto_679be765111ba775 = function(arg0) {\n var ret = getObject(arg0).msCrypto;\n return addHeapObject(ret);\n};\n\nconst __wbindgen_is_undefined = function(arg0) {\n var ret = getObject(arg0) === undefined;\n return ret;\n};\n\nconst __wbg_getRandomValues_05a60bf171bfc2be = function(arg0) {\n var ret = getObject(arg0).getRandomValues;\n return addHeapObject(ret);\n};\n\nconst __wbg_instanceof_Window_adf3196bdc02b386 = function(arg0) {\n var ret = getObject(arg0) instanceof Window;\n return ret;\n};\n\nconst __wbg_document_6cc8d0b87c0a99b9 = function(arg0) {\n var ret = getObject(arg0).document;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n};\n\nconst __wbg_getElementById_0cb6ad9511b1efc0 = function(arg0, arg1, arg2) {\n var ret = getObject(arg0).getElementById(getStringFromWasm0(arg1, arg2));\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n};\n\nconst __wbg_setinnerHTML_4ff235db1a3cb4d8 = function(arg0, arg1, arg2) {\n getObject(arg0).innerHTML = getStringFromWasm0(arg1, arg2);\n};\n\nconst __wbg_call_8e95613cc6524977 = handleError(function(arg0, arg1) {\n var ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n});\n\nconst __wbindgen_object_clone_ref = function(arg0) {\n var ret = getObject(arg0);\n return addHeapObject(ret);\n};\n\nconst __wbg_newnoargs_f3b8a801d5d4b079 = function(arg0, arg1) {\n var ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n};\n\nconst __wbg_self_07b2f89e82ceb76d = handleError(function() {\n var ret = self.self;\n return addHeapObject(ret);\n});\n\nconst __wbg_window_ba85d88572adc0dc = handleError(function() {\n var ret = window.window;\n return addHeapObject(ret);\n});\n\nconst __wbg_globalThis_b9277fc37e201fe5 = handleError(function() {\n var ret = globalThis.globalThis;\n return addHeapObject(ret);\n});\n\nconst __wbg_global_e16303fe83e1d57f = handleError(function() {\n var ret = global.global;\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), __webpack_require__(/*! ./../www/node_modules/webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///../pkg/mapgen_demo_bg.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(module, global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Cell\", function() { return Cell; });\n/* 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_getRandomValues_3ac1b33c90b52596\", function() { return __wbg_getRandomValues_3ac1b33c90b52596; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_randomFillSync_6f956029658662ec\", function() { return __wbg_randomFillSync_6f956029658662ec; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_self_1c83eb4471d9eb9b\", function() { return __wbg_self_1c83eb4471d9eb9b; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_static_accessor_MODULE_abf5ae284bffdf45\", function() { return __wbg_static_accessor_MODULE_abf5ae284bffdf45; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_require_5b2b5b594d809d9f\", function() { return __wbg_require_5b2b5b594d809d9f; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_crypto_c12f14e810edcaa2\", function() { return __wbg_crypto_c12f14e810edcaa2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_msCrypto_679be765111ba775\", function() { return __wbg_msCrypto_679be765111ba775; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbindgen_is_undefined\", function() { return __wbindgen_is_undefined; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_getRandomValues_05a60bf171bfc2be\", function() { return __wbg_getRandomValues_05a60bf171bfc2be; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_instanceof_Window_adf3196bdc02b386\", function() { return __wbg_instanceof_Window_adf3196bdc02b386; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_document_6cc8d0b87c0a99b9\", function() { return __wbg_document_6cc8d0b87c0a99b9; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_getElementById_0cb6ad9511b1efc0\", function() { return __wbg_getElementById_0cb6ad9511b1efc0; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_setinnerHTML_4ff235db1a3cb4d8\", function() { return __wbg_setinnerHTML_4ff235db1a3cb4d8; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_call_8e95613cc6524977\", function() { return __wbg_call_8e95613cc6524977; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbindgen_object_clone_ref\", function() { return __wbindgen_object_clone_ref; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_newnoargs_f3b8a801d5d4b079\", function() { return __wbg_newnoargs_f3b8a801d5d4b079; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_self_07b2f89e82ceb76d\", function() { return __wbg_self_07b2f89e82ceb76d; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_window_ba85d88572adc0dc\", function() { return __wbg_window_ba85d88572adc0dc; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_globalThis_b9277fc37e201fe5\", function() { return __wbg_globalThis_b9277fc37e201fe5; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__wbg_global_e16303fe83e1d57f\", function() { return __wbg_global_e16303fe83e1d57f; });\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\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\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 handleError(f) {\n return function () {\n try {\n return f.apply(this, arguments);\n\n } catch (e) {\n _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"__wbindgen_exn_store\"](addHeapObject(e));\n }\n };\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n/**\n*/\nconst Cell = Object.freeze({ Floor:0,\"0\":\"Floor\",Wall:1,\"1\":\"Wall\", });\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 * @param {number} seed\n * @returns {World}\n */\n static new_cellular_automata(width, height, seed) {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_new_cellular_automata\"](width, height, seed);\n return World.__wrap(ret);\n }\n /**\n * @param {number} width\n * @param {number} height\n * @param {number} seed\n * @returns {World}\n */\n static new_simple_rooms(width, height, seed) {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_new_simple_rooms\"](width, height, seed);\n return World.__wrap(ret);\n }\n /**\n * @param {number} width\n * @param {number} height\n * @param {number} seed\n * @returns {World}\n */\n static new_bsp_interior(width, height, seed) {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_new_bsp_interior\"](width, height, seed);\n return World.__wrap(ret);\n }\n /**\n * @param {number} width\n * @param {number} height\n * @param {number} seed\n * @returns {World}\n */\n static new_drunkard(width, height, seed) {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_new_drunkard\"](width, height, seed);\n return World.__wrap(ret);\n }\n /**\n * @param {number} width\n * @param {number} height\n * @param {number} seed\n * @returns {World}\n */\n static new_random(width, height, seed) {\n var ret = _mapgen_demo_bg_wasm__WEBPACK_IMPORTED_MODULE_0__[\"world_new_random\"](width, height, seed);\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_getRandomValues_3ac1b33c90b52596 = function(arg0, arg1, arg2) {\n getObject(arg0).getRandomValues(getArrayU8FromWasm0(arg1, arg2));\n};\n\nconst __wbg_randomFillSync_6f956029658662ec = function(arg0, arg1, arg2) {\n getObject(arg0).randomFillSync(getArrayU8FromWasm0(arg1, arg2));\n};\n\nconst __wbg_self_1c83eb4471d9eb9b = handleError(function() {\n var ret = self.self;\n return addHeapObject(ret);\n});\n\nconst __wbg_static_accessor_MODULE_abf5ae284bffdf45 = function() {\n var ret = module;\n return addHeapObject(ret);\n};\n\nconst __wbg_require_5b2b5b594d809d9f = function(arg0, arg1, arg2) {\n var ret = getObject(arg0).require(getStringFromWasm0(arg1, arg2));\n return addHeapObject(ret);\n};\n\nconst __wbg_crypto_c12f14e810edcaa2 = function(arg0) {\n var ret = getObject(arg0).crypto;\n return addHeapObject(ret);\n};\n\nconst __wbg_msCrypto_679be765111ba775 = function(arg0) {\n var ret = getObject(arg0).msCrypto;\n return addHeapObject(ret);\n};\n\nconst __wbindgen_is_undefined = function(arg0) {\n var ret = getObject(arg0) === undefined;\n return ret;\n};\n\nconst __wbg_getRandomValues_05a60bf171bfc2be = function(arg0) {\n var ret = getObject(arg0).getRandomValues;\n return addHeapObject(ret);\n};\n\nconst __wbg_instanceof_Window_adf3196bdc02b386 = function(arg0) {\n var ret = getObject(arg0) instanceof Window;\n return ret;\n};\n\nconst __wbg_document_6cc8d0b87c0a99b9 = function(arg0) {\n var ret = getObject(arg0).document;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n};\n\nconst __wbg_getElementById_0cb6ad9511b1efc0 = function(arg0, arg1, arg2) {\n var ret = getObject(arg0).getElementById(getStringFromWasm0(arg1, arg2));\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n};\n\nconst __wbg_setinnerHTML_4ff235db1a3cb4d8 = function(arg0, arg1, arg2) {\n getObject(arg0).innerHTML = getStringFromWasm0(arg1, arg2);\n};\n\nconst __wbg_call_8e95613cc6524977 = handleError(function(arg0, arg1) {\n var ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n});\n\nconst __wbindgen_object_clone_ref = function(arg0) {\n var ret = getObject(arg0);\n return addHeapObject(ret);\n};\n\nconst __wbg_newnoargs_f3b8a801d5d4b079 = function(arg0, arg1) {\n var ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n};\n\nconst __wbg_self_07b2f89e82ceb76d = handleError(function() {\n var ret = self.self;\n return addHeapObject(ret);\n});\n\nconst __wbg_window_ba85d88572adc0dc = handleError(function() {\n var ret = window.window;\n return addHeapObject(ret);\n});\n\nconst __wbg_globalThis_b9277fc37e201fe5 = handleError(function() {\n var ret = globalThis.globalThis;\n return addHeapObject(ret);\n});\n\nconst __wbg_global_e16303fe83e1d57f = handleError(function() {\n var ret = global.global;\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), __webpack_require__(/*! ./../www/node_modules/webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\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_cellular_automata, world_new_simple_rooms, world_new_bsp_interior, world_new_random, world_width, world_height, world_tiles, __wbindgen_exn_store */ +/*! exports provided: memory, __wbg_world_free, world_new_cellular_automata, world_new_simple_rooms, world_new_bsp_interior, world_new_drunkard, world_new_random, world_width, world_height, world_tiles, __wbindgen_exn_store */ /***/ (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 = 12;\nconst GRID_COLOR = \"#CCCCCC\";\nconst DEAD_COLOR = \"#FFFFFF\";\nconst ALIVE_COLOR = \"#000000\";\n\nvar world = null;\nconst width = 80;\nconst height = 50;\n\nconst infoDiv = document.getElementById('map-info');\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\n// Map generators\nfunction newCellularAutomata() {\n var seed = Date.now();\n world = mapgen_demo__WEBPACK_IMPORTED_MODULE_0__[\"World\"].new_cellular_automata(width, height, seed);\n requestAnimationFrame(renderLoop);\n}\n\nfunction newSimpleRooms() {\n var seed = Date.now();\n world = mapgen_demo__WEBPACK_IMPORTED_MODULE_0__[\"World\"].new_simple_rooms(width, height, seed);\n requestAnimationFrame(renderLoop);\n}\n\nfunction newBspInterior() {\n var seed = Date.now();\n world = mapgen_demo__WEBPACK_IMPORTED_MODULE_0__[\"World\"].new_bsp_interior(width, height, seed);\n requestAnimationFrame(renderLoop);\n}\n\nfunction newRandomGen() {\n var seed = Date.now();\n world = mapgen_demo__WEBPACK_IMPORTED_MODULE_0__[\"World\"].new_random(width, height, seed);\n requestAnimationFrame(renderLoop);\n}\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] == mapgen_demo__WEBPACK_IMPORTED_MODULE_0__[\"Cell\"].Floor\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\nnewRandomGen();\n\n// Connect UI element\ndocument.getElementById('cellular-automata-option').addEventListener('click', newCellularAutomata);\ndocument.getElementById('simple-rooms-option').addEventListener('click', newSimpleRooms);\ndocument.getElementById('bsp-interior-option').addEventListener('click', newBspInterior);\ndocument.getElementById('random-option').addEventListener('click', newRandomGen);\n\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\nvar world = null;\nconst width = 80;\nconst height = 50;\n\nconst infoDiv = document.getElementById('map-info');\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\n// Map generators\nfunction newCellularAutomata() {\n var seed = Date.now();\n world = mapgen_demo__WEBPACK_IMPORTED_MODULE_0__[\"World\"].new_cellular_automata(width, height, seed);\n requestAnimationFrame(renderLoop);\n}\n\nfunction newSimpleRooms() {\n var seed = Date.now();\n world = mapgen_demo__WEBPACK_IMPORTED_MODULE_0__[\"World\"].new_simple_rooms(width, height, seed);\n requestAnimationFrame(renderLoop);\n}\n\nfunction newBspInterior() {\n var seed = Date.now();\n world = mapgen_demo__WEBPACK_IMPORTED_MODULE_0__[\"World\"].new_bsp_interior(width, height, seed);\n requestAnimationFrame(renderLoop);\n}\n\nfunction newDrunkard() {\n var seed = Date.now();\n world = mapgen_demo__WEBPACK_IMPORTED_MODULE_0__[\"World\"].new_drunkard(width, height, seed);\n requestAnimationFrame(renderLoop);\n}\n\nfunction newRandomGen() {\n var seed = Date.now();\n world = mapgen_demo__WEBPACK_IMPORTED_MODULE_0__[\"World\"].new_random(width, height, seed);\n requestAnimationFrame(renderLoop);\n}\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] == mapgen_demo__WEBPACK_IMPORTED_MODULE_0__[\"Cell\"].Floor\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\nnewRandomGen();\n\n// Connect UI element\ndocument.getElementById('cellular-automata-option').addEventListener('click', newCellularAutomata);\ndocument.getElementById('simple-rooms-option').addEventListener('click', newSimpleRooms);\ndocument.getElementById('bsp-interior-option').addEventListener('click', newBspInterior);\ndocument.getElementById('drunkard-option').addEventListener('click', newDrunkard);\ndocument.getElementById('random-option').addEventListener('click', newRandomGen);\n\n\n//# sourceURL=webpack:///./index.js?"); /***/ }), diff --git a/docs/5a858ffd967a1d3be2df.module.wasm b/docs/5a858ffd967a1d3be2df.module.wasm new file mode 100644 index 0000000000000000000000000000000000000000..b4c24e0d48fdd6c15f2392f9bd5fb2f9d34d7628 GIT binary patch literal 97344 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 literal 0 HcmV?d00001 diff --git a/docs/bootstrap.js b/docs/bootstrap.js index 6cf36c6..04499f5 100644 --- a/docs/bootstrap.js +++ b/docs/bootstrap.js @@ -222,7 +222,7 @@ /******/ promises.push(installedWasmModuleData); /******/ else { /******/ var importObject = wasmImportObjects[wasmModuleId](); -/******/ var req = fetch(__webpack_require__.p + "" + {"../pkg/mapgen_demo_bg.wasm":"cbb67d3121ca19dbc9af"}[wasmModuleId] + ".module.wasm"); +/******/ var req = fetch(__webpack_require__.p + "" + {"../pkg/mapgen_demo_bg.wasm":"5a858ffd967a1d3be2df"}[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/index.html b/docs/index.html index 2426dee..017e877 100644 --- a/docs/index.html +++ b/docs/index.html @@ -38,6 +38,7 @@ Cellular Automata Simple Rooms BSP Interior + Drunkard Walk Random Generator