2022-04-02 12:42:34 +01:00
|
|
|
"use strict";
|
2021-06-21 22:48:40 +01:00
|
|
|
/*
|
|
|
|
* ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
|
|
|
|
* This devtool is neither made for production nor for readable output files.
|
|
|
|
* It uses "eval()" calls to create a separate source file in the browser devtools.
|
|
|
|
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
|
|
* or disable the default devtool with "devtool: false".
|
|
|
|
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
|
|
*/
|
|
|
|
(self["webpackChunkgame_of_life_web"] = self["webpackChunkgame_of_life_web"] || []).push([["index_js"],{
|
|
|
|
|
2021-06-21 23:41:43 +01:00
|
|
|
/***/ "../pkg/gameoflife_bg.js":
|
|
|
|
/*!*******************************!*\
|
|
|
|
!*** ../pkg/gameoflife_bg.js ***!
|
|
|
|
\*******************************/
|
2021-06-21 22:48:40 +01:00
|
|
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
2022-04-30 10:00:40 +01:00
|
|
|
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Cell\": () => (/* binding */ Cell),\n/* harmony export */ \"Universe\": () => (/* binding */ Universe),\n/* harmony export */ \"__wbg_error_09919627ac0992f5\": () => (/* binding */ __wbg_error_09919627ac0992f5),\n/* harmony export */ \"__wbg_log_e8ba7b992c7ad0eb\": () => (/* binding */ __wbg_log_e8ba7b992c7ad0eb),\n/* harmony export */ \"__wbg_new_693216e109162396\": () => (/* binding */ __wbg_new_693216e109162396),\n/* harmony export */ \"__wbg_stack_0ddaca5d1abfb52f\": () => (/* binding */ __wbg_stack_0ddaca5d1abfb52f),\n/* harmony export */ \"__wbindgen_object_drop_ref\": () => (/* binding */ __wbindgen_object_drop_ref),\n/* harmony export */ \"__wbindgen_string_new\": () => (/* binding */ __wbindgen_string_new),\n/* harmony export */ \"__wbindgen_throw\": () => (/* binding */ __wbindgen_throw),\n/* harmony export */ \"init_game\": () => (/* binding */ init_game)\n/* harmony export */ });\n/* harmony import */ var _gameoflife_bg_wasm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./gameoflife_bg.wasm */ \"../pkg/gameoflife_bg.wasm\");\n/* module decorator */ module = __webpack_require__.hmd(module);\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_gameoflife_bg_wasm__WEBPACK_IMPORTED_MODULE_0__]);\n_gameoflife_bg_wasm__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\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 !== _gameoflife_bg_wasm__WEBPACK_IMPORTED_MODULE_0__.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(_gameoflife_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*/\nfunction init_game() {\n _gameoflife_bg_wasm__WEBPACK_IMPORTED_MODULE_0__.init_game();\n}\n\nlet cachegetInt32Memory0 = null;\nfunction getInt32Memory0() {\n if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== _gameoflife_bg_wasm__WEBPACK_IMPORTED_MODULE_0__.memory.buffer) {\n cachegetInt32Memory0 = new Int32Array(_gameoflife_bg_wasm__WEBPACK_IMPORTED_MODULE_0__.memory.buffer);\n }\n return cachegetInt32Memory0;\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nconst lTextEncoder = typeof TextEncoder === 'undefined' ? (0, module.require)('util').TextEncoder : TextEncoder;\n\nlet cachedTextEncoder = new lTextEncoder('utf-8');\n\nconst encodeString = (typeof cachedTextEncoder.encodeInto === 'function'\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n}\n : function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n});\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc ===
|
2021-06-21 22:48:40 +01:00
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
|
|
/***/ "./index.js":
|
|
|
|
/*!******************!*\
|
|
|
|
!*** ./index.js ***!
|
|
|
|
\******************/
|
|
|
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
|
2022-04-02 12:42:34 +01:00
|
|
|
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var gameoflife__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! gameoflife */ \"../pkg/gameoflife_bg.js\");\n/* harmony import */ var gameoflife_gameoflife_bg_wasm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! gameoflife/gameoflife_bg.wasm */ \"../pkg/gameoflife_bg.wasm\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([gameoflife__WEBPACK_IMPORTED_MODULE_0__, gameoflife_gameoflife_bg_wasm__WEBPACK_IMPORTED_MODULE_1__]);\n([gameoflife__WEBPACK_IMPORTED_MODULE_0__, gameoflife_gameoflife_bg_wasm__WEBPACK_IMPORTED_MODULE_1__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);\n\n\n\n// let PLAY = true;\n// let PLAY = false;\n(0,gameoflife__WEBPACK_IMPORTED_MODULE_0__.init_game)();\nconst randSlider = document.getElementById(\"randThreshold\");\nconst randSliderLabel = document.getElementById(\"randThreshold-label\");\n\nconst CELL_SIZE = 4; // px\nconst GRID_COLOR = \"#BBBBBB\";\nconst DEAD_COLOR = \"#FFFFFF\";\nconst ALIVE_COLOR = \"#FF55AA\";\n\nlet universe = gameoflife__WEBPACK_IMPORTED_MODULE_0__.Universe[\"new\"](100, 100, randSlider.value, new Date().getTime() / 1000);\nlet width = universe.width();\nlet height = universe.height();\nlet play = false;\n\nconst canvas = document.getElementById(\"game-of-life-canvas\");\ncanvas.height = (CELL_SIZE + 1) * height + 1;\ncanvas.width = (CELL_SIZE + 1) * width + 1;\n\nconst ctx = canvas.getContext('2d');\n \n/**\n * Draw grid onto canvas prior to painting cells\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\n/**\n * Get linear index from row and column indices\n * @param {*} row Row index\n * @param {*} column Column index\n * @returns Linear index\n */\nconst getIndex = (row, column) => {\n return row * width + column;\n};\n\n/**\n * Paint alive cells onto grid\n */\nconst drawCells = () => {\n const cellsPtr = universe.cells();\n const cells = new Uint8Array(gameoflife_gameoflife_bg_wasm__WEBPACK_IMPORTED_MODULE_1__.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] === gameoflife__WEBPACK_IMPORTED_MODULE_0__.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\n/**\n * Single frame/step of game, tick universe, refresh UI\n */\nconst renderSingle = () => {\n // fps.render(); //new\n universe.tick();\n \n drawGrid();\n drawCells();\n}\n\n/**\n * Start interval timer to periodically iterate frames\n */\nconst start = () => {\n if(loop != null) clearInterval(loop);\n loop = setInterval(renderSingle, frameInterval);\n}\n\n/**\n * Clear interval timer to stop animation loop\n */\nconst stop = () => {\n if(loop != null) clearInterval(loop);\n loop = null;\n}\n\nvar frameInterval = 50;\n// var loop = setInterval(renderSingle, frameInterval);\nvar loop = null;\n\n// SLIDERS\n\nconst frameSlider = document.getElementById(\"frameRate\");\nconst frameSliderLabel = document.getElementById(\"frameRate-label\");\n/**\n * Handler for frame interval slider change, stop, change
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
|
|
/***/ "../pkg/gameoflife_bg.wasm":
|
|
|
|
/*!*********************************!*\
|
|
|
|
!*** ../pkg/gameoflife_bg.wasm ***!
|
|
|
|
\*********************************/
|
|
|
|
/***/ ((module, exports, __webpack_require__) => {
|
|
|
|
|
2022-05-05 23:13:59 +01:00
|
|
|
eval("var __webpack_instantiate__ = ([WEBPACK_IMPORTED_MODULE_0]) => {\n\treturn __webpack_require__.v(exports, module.id, \"58ec0a247bb667f52ef9\", {\n\t\t\"./gameoflife_bg.js\": {\n\t\t\t\"__wbindgen_object_drop_ref\": WEBPACK_IMPORTED_MODULE_0.__wbindgen_object_drop_ref,\n\t\t\t\"__wbindgen_string_new\": WEBPACK_IMPORTED_MODULE_0.__wbindgen_string_new,\n\t\t\t\"__wbg_new_693216e109162396\": WEBPACK_IMPORTED_MODULE_0.__wbg_new_693216e109162396,\n\t\t\t\"__wbg_stack_0ddaca5d1abfb52f\": WEBPACK_IMPORTED_MODULE_0.__wbg_stack_0ddaca5d1abfb52f,\n\t\t\t\"__wbg_error_09919627ac0992f5\": WEBPACK_IMPORTED_MODULE_0.__wbg_error_09919627ac0992f5,\n\t\t\t\"__wbg_log_e8ba7b992c7ad0eb\": WEBPACK_IMPORTED_MODULE_0.__wbg_log_e8ba7b992c7ad0eb,\n\t\t\t\"__wbindgen_throw\": WEBPACK_IMPORTED_MODULE_0.__wbindgen_throw\n\t\t}\n\t});\n}\n__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => {\n\ttry {\n\t/* harmony import */ var WEBPACK_IMPORTED_MODULE_0 = __webpack_require__(/*! ./gameoflife_bg.js */ \"../pkg/gameoflife_bg.js\");\n\tvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([WEBPACK_IMPORTED_MODULE_0]);\n\tvar [WEBPACK_IMPORTED_MODULE_0] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__;\n\tawait __webpack_require__.v(exports, module.id, \"58ec0a247bb667f52ef9\", {\n\t\t\"./gameoflife_bg.js\": {\n\t\t\t\"__wbindgen_object_drop_ref\": WEBPACK_IMPORTED_MODULE_0.__wbindgen_object_drop_ref,\n\t\t\t\"__wbindgen_string_new\": WEBPACK_IMPORTED_MODULE_0.__wbindgen_string_new,\n\t\t\t\"__wbg_new_693216e109162396\": WEBPACK_IMPORTED_MODULE_0.__wbg_new_693216e109162396,\n\t\t\t\"__wbg_stack_0ddaca5d1abfb52f\": WEBPACK_IMPORTED_MODULE_0.__wbg_stack_0ddaca5d1abfb52f,\n\t\t\t\"__wbg_error_09919627ac0992f5\": WEBPACK_IMPORTED_MODULE_0.__wbg_error_09919627ac0992f5,\n\t\t\t\"__wbg_log_e8ba7b992c7ad0eb\": WEBPACK_IMPORTED_MODULE_0.__wbg_log_e8ba7b992c7ad0eb,\n\t\t\t\"__wbindgen_throw\": WEBPACK_IMPORTED_MODULE_0.__wbindgen_throw\n\t\t}\n\t});\n\t__webpack_async_result__();\n\t} catch(e) { __webpack_async_result__(e); }\n}, 1);\n\n//# sourceURL=webpack://game-of-life-web/../pkg/gameoflife_bg.wasm?");
|
2021-06-21 22:48:40 +01:00
|
|
|
|
|
|
|
/***/ })
|
|
|
|
|
|
|
|
}]);
|