screeps-clockwork 0.8.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -969,9 +969,21 @@ function js_dijkstra_multiroom_distance_map(start_packed, get_cost_matrix, max_o
969
969
  * @returns {Path}
970
970
  */
971
971
  function js_path_to_multiroom_distance_map_origin(start, distance_map, direction_order) {
972
- _assertClass(distance_map, MultiroomDistanceMap);
973
- const ret = wasm.js_path_to_multiroom_distance_map_origin(start, distance_map.__wbg_ptr, direction_order);
974
- return Path.__wrap(ret);
972
+ try {
973
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
974
+ _assertClass(distance_map, MultiroomDistanceMap);
975
+ wasm.js_path_to_multiroom_distance_map_origin(retptr, start, distance_map.__wbg_ptr, direction_order);
976
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
977
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
978
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
979
+ if (r2) {
980
+ throw takeObject(r1);
981
+ }
982
+ return Path.__wrap(r0);
983
+ }
984
+ finally {
985
+ wasm.__wbindgen_add_to_stack_pointer(16);
986
+ }
975
987
  }
976
988
  /**
977
989
  * @param {number} start
@@ -979,9 +991,21 @@ function js_path_to_multiroom_distance_map_origin(start, distance_map, direction
979
991
  * @returns {Path}
980
992
  */
981
993
  function js_path_to_multiroom_flow_field_origin(start, flow_field) {
982
- _assertClass(flow_field, MultiroomFlowField);
983
- const ret = wasm.js_path_to_multiroom_flow_field_origin(start, flow_field.__wbg_ptr);
984
- return Path.__wrap(ret);
994
+ try {
995
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
996
+ _assertClass(flow_field, MultiroomFlowField);
997
+ wasm.js_path_to_multiroom_flow_field_origin(retptr, start, flow_field.__wbg_ptr);
998
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
999
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1000
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1001
+ if (r2) {
1002
+ throw takeObject(r1);
1003
+ }
1004
+ return Path.__wrap(r0);
1005
+ }
1006
+ finally {
1007
+ wasm.__wbindgen_add_to_stack_pointer(16);
1008
+ }
985
1009
  }
986
1010
  /**
987
1011
  * @param {number} start
@@ -989,9 +1013,21 @@ function js_path_to_multiroom_flow_field_origin(start, flow_field) {
989
1013
  * @returns {Path}
990
1014
  */
991
1015
  function js_path_to_multiroom_mono_flow_field_origin(start, flow_field) {
992
- _assertClass(flow_field, MultiroomMonoFlowField);
993
- const ret = wasm.js_path_to_multiroom_mono_flow_field_origin(start, flow_field.__wbg_ptr);
994
- return Path.__wrap(ret);
1016
+ try {
1017
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1018
+ _assertClass(flow_field, MultiroomMonoFlowField);
1019
+ wasm.js_path_to_multiroom_mono_flow_field_origin(retptr, start, flow_field.__wbg_ptr);
1020
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1021
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1022
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1023
+ if (r2) {
1024
+ throw takeObject(r1);
1025
+ }
1026
+ return Path.__wrap(r0);
1027
+ }
1028
+ finally {
1029
+ wasm.__wbindgen_add_to_stack_pointer(16);
1030
+ }
995
1031
  }
996
1032
  /**
997
1033
  * Creates a flow field for the given distance map.
@@ -1068,7 +1104,7 @@ function __wbg_get_imports() {
1068
1104
  const ret = Math.ceil(arg0);
1069
1105
  return ret;
1070
1106
  },
1071
- __wbg_clockworkcostmatrix_get_pointer_15ba3af769956aef: function (arg0) {
1107
+ __wbg_clockworkcostmatrix_get_pointer_034c1334d6500e43: function (arg0) {
1072
1108
  const ret = clockworkcostmatrix_get_pointer(takeObject(arg0));
1073
1109
  return ret;
1074
1110
  },
@@ -1114,7 +1150,7 @@ function __wbg_get_imports() {
1114
1150
  const ret = getObject(arg0).length;
1115
1151
  return ret;
1116
1152
  },
1117
- __wbg_log_3f6a135259953cf7: function (arg0, arg1) {
1153
+ __wbg_log_57a4143223d80aa4: function (arg0, arg1) {
1118
1154
  console.log(getStringFromWasm0(arg0, arg1));
1119
1155
  },
1120
1156
  __wbg_lookFor_0ddc4d9f22e9bfe5: function () {
@@ -1123,6 +1159,10 @@ function __wbg_get_imports() {
1123
1159
  return isLikeNone(ret) ? 0 : addHeapObject(ret);
1124
1160
  }, arguments);
1125
1161
  },
1162
+ __wbg_new_1f236d63ba0c4784: function (arg0, arg1) {
1163
+ const ret = new Error(getStringFromWasm0(arg0, arg1));
1164
+ return addHeapObject(ret);
1165
+ },
1126
1166
  __wbg_new_227d7c05414eb861: function () {
1127
1167
  const ret = new Error();
1128
1168
  return addHeapObject(ret);
@@ -1411,46 +1451,6 @@ function initSync(module) {
1411
1451
  return __wbg_finalize_init(instance);
1412
1452
  }
1413
1453
 
1414
- const cache = new Set();
1415
- let cacheTick = 0;
1416
- /**
1417
- * Mark an item as ephemeral. This means that the item will be freed after the
1418
- * current tick.
1419
- *
1420
- * If you don't use this to clean up your data, you'll need to call `free()`
1421
- * yourself.
1422
- *
1423
- * @param item - The item to be cleaned up.
1424
- * @returns The item.
1425
- */
1426
- function ephemeral(item) {
1427
- if (cacheTick !== Game.time) {
1428
- for (const item of cache) {
1429
- try {
1430
- item.free();
1431
- }
1432
- catch (_a) {
1433
- // may have already been cleaned up
1434
- }
1435
- }
1436
- cache.clear();
1437
- cacheTick = Game.time;
1438
- }
1439
- cache.add(item);
1440
- return item;
1441
- }
1442
- /**
1443
- * Persist an ephemeral item. This means that the item will not be freed after
1444
- * the current tick.
1445
- *
1446
- * @param item - The item to be persisted.
1447
- * @returns The item.
1448
- */
1449
- function persist(item) {
1450
- cache.delete(item);
1451
- return item;
1452
- }
1453
-
1454
1454
  const MAX_USIZE = 0xffffffff;
1455
1455
 
1456
1456
  function fromPacked(packedPos) {
@@ -1492,6 +1492,33 @@ function packRoomName(room) {
1492
1492
  return (x << 8) | y;
1493
1493
  }
1494
1494
 
1495
+ /**
1496
+ * A distance map for a single room.
1497
+ */
1498
+ class ClockworkDistanceMap {
1499
+ constructor(_map) {
1500
+ this._map = _map;
1501
+ }
1502
+ /**
1503
+ * Gets the distance value at a given position.
1504
+ */
1505
+ get(x, y) {
1506
+ return this._map.get(x, y);
1507
+ }
1508
+ /**
1509
+ * Sets the distance value at a given position.
1510
+ */
1511
+ set(x, y, value) {
1512
+ this._map.set(x, y, value);
1513
+ }
1514
+ /**
1515
+ * Converts the distance map into a flat array of distances.
1516
+ */
1517
+ toArray() {
1518
+ return this._map.toArray();
1519
+ }
1520
+ }
1521
+
1495
1522
  /**
1496
1523
  * A flow field for a single room that stores multiple directions per tile.
1497
1524
  */
@@ -1529,12 +1556,6 @@ class ClockworkFlowField {
1529
1556
  addDirection(x, y, direction) {
1530
1557
  this._flowField.addDirection(x, y, direction);
1531
1558
  }
1532
- /**
1533
- * Free the memory allocated for this flow field.
1534
- */
1535
- free() {
1536
- this._flowField.free();
1537
- }
1538
1559
  }
1539
1560
 
1540
1561
  /**
@@ -1634,12 +1655,6 @@ class ClockworkPath {
1634
1655
  }
1635
1656
  return result;
1636
1657
  }
1637
- /**
1638
- * Free the memory allocated for this path.
1639
- */
1640
- free() {
1641
- this.path.free();
1642
- }
1643
1658
  }
1644
1659
 
1645
1660
  /**
@@ -1702,12 +1717,6 @@ class ClockworkMultiroomFlowField {
1702
1717
  pathToOrigin(start) {
1703
1718
  return new ClockworkPath(js_path_to_multiroom_flow_field_origin(start.__packedPos, this._flowField));
1704
1719
  }
1705
- /**
1706
- * Free the memory allocated for this flow field.
1707
- */
1708
- free() {
1709
- this._flowField.free();
1710
- }
1711
1720
  }
1712
1721
 
1713
1722
  /**
@@ -1729,12 +1738,6 @@ class ClockworkMonoFlowField {
1729
1738
  set(x, y, value) {
1730
1739
  this._flowField.set(x, y, value);
1731
1740
  }
1732
- /**
1733
- * Free the memory allocated for this flow field.
1734
- */
1735
- free() {
1736
- this._flowField.free();
1737
- }
1738
1741
  }
1739
1742
 
1740
1743
  /**
@@ -1780,12 +1783,6 @@ class ClockworkMultiroomMonoFlowField {
1780
1783
  pathToOrigin(start) {
1781
1784
  return new ClockworkPath(js_path_to_multiroom_mono_flow_field_origin(start.__packedPos, this._flowField));
1782
1785
  }
1783
- /**
1784
- * Free the memory allocated for this flow field.
1785
- */
1786
- free() {
1787
- this._flowField.free();
1788
- }
1789
1786
  }
1790
1787
 
1791
1788
  const DEFAULT_DIRECTION_ORDER = DirectionOrder.CardinalFirst;
@@ -1813,7 +1810,8 @@ class ClockworkMultiroomDistanceMap {
1813
1810
  * Get the DistanceMap for a given room.
1814
1811
  */
1815
1812
  getRoom(room) {
1816
- return this._map.get_room(packRoomName(room));
1813
+ const map = this._map.get_room(packRoomName(room));
1814
+ return map ? new ClockworkDistanceMap(map) : undefined;
1817
1815
  }
1818
1816
  /**
1819
1817
  * List all the rooms covered by this distance map.
@@ -1821,12 +1819,6 @@ class ClockworkMultiroomDistanceMap {
1821
1819
  getRooms() {
1822
1820
  return [...this._map.get_rooms()].map(room => fromPackedRoomName(room));
1823
1821
  }
1824
- /**
1825
- * Free the memory allocated for this distance map.
1826
- */
1827
- free() {
1828
- this._map.free();
1829
- }
1830
1822
  /**
1831
1823
  * Path to the origin from a given position.
1832
1824
  * Pass `DirectionOrder.DiagonalFirst` to prefer diagonal steps when multiple neighbors are equally close.
@@ -1860,7 +1852,6 @@ function fromPackedSearchResult(result) {
1860
1852
  }, []);
1861
1853
  const distanceMap = new ClockworkMultiroomDistanceMap(result.distance_map);
1862
1854
  const ops = result.ops;
1863
- result.free();
1864
1855
  return {
1865
1856
  distanceMap,
1866
1857
  foundTargets,
@@ -2051,15 +2042,10 @@ exports.ClockworkMultiroomFlowField = ClockworkMultiroomFlowField;
2051
2042
  exports.ClockworkMultiroomMonoFlowField = ClockworkMultiroomMonoFlowField;
2052
2043
  exports.ClockworkPath = ClockworkPath;
2053
2044
  exports.DirectionOrder = DirectionOrder;
2054
- exports.DistanceMap = DistanceMap;
2055
- exports.FlowField = FlowField;
2056
- exports.MonoFlowField = MonoFlowField;
2057
2045
  exports.astarMultiroomDistanceMap = astarMultiroomDistanceMap;
2058
2046
  exports.bfsMultiroomDistanceMap = bfsMultiroomDistanceMap;
2059
2047
  exports.dijkstraMultiroomDistanceMap = dijkstraMultiroomDistanceMap;
2060
- exports.ephemeral = ephemeral;
2061
2048
  exports.getRange = getRange;
2062
2049
  exports.getTerrainCostMatrix = getTerrainCostMatrix;
2063
2050
  exports.initialize = initialize;
2064
- exports.persist = persist;
2065
2051
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/fastestsmallesttextencoderdecoder-encodeinto/EncoderDecoderTogether.min.js","../../src/wasm/snippets/screeps-clockwork-869b2861045aa01b/inline0.js","../../src/wasm/screeps_clockwork.js","../../src/utils/cleanup.ts","../../src/utils/constants.ts","../../src/utils/fromPacked.ts","../../src/wrappers/flowField.ts","../../src/wrappers/path.ts","../../src/wrappers/multiroomFlowField.ts","../../src/wrappers/monoFlowField.ts","../../src/wrappers/multiroomMonoFlowField.ts","../../src/wrappers/multiroomDistanceMap.ts","../../src/wrappers/searchResult.ts","../../src/wrappers/astarDistanceMap.ts","../../src/wrappers/bfsDistanceMap.ts","../../src/wrappers/dijkstraDistanceMap.ts","../../src/wrappers/getRange.ts","../../src/wrappers/getTerrainCostMatrix.ts","../../src/index.ts"],"sourcesContent":["'use strict';(function(q){function y(){}function C(b){var c=b.charCodeAt(0)|0;if(55296<=c)if(56319>=c)if(b=b.charCodeAt(1)|0,56320<=b&&57343>=b){if(c=(c<<10)+b-56613888|0,65535<c)return v(240|c>>18,128|c>>12&63,128|c>>6&63,128|c&63)}else c=65533;else 57343>=c&&(c=65533);return 2047>=c?v(192|c>>6,128|c&63):v(224|c>>12,128|c>>6&63,128|c&63)}function z(){}function A(b,c){var g=void 0===b?\"\":(\"\"+b).replace(D,C),d=g.length|0,a=0,k=0,f=c.length|0,h=b.length|0;f<d&&(d=f);a:for(;a<d;a=a+1|0){b=g.charCodeAt(a)|\n0;switch(b>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:k=k+1|0;case 8:case 9:case 10:case 11:break;case 12:case 13:if((a+1|0)<f){k=k+1|0;break}case 14:if((a+2|0)<f){k=k+1|0;break}case 15:if((a+3|0)<f){k=k+1|0;break}default:break a}c[a]=b}return{written:a,read:h<k?h:k}}var v=String.fromCharCode,x={}.toString,E=x.call(q.SharedArrayBuffer),F=x(),t=q.Uint8Array,w=t||Array,u=t?ArrayBuffer:w,G=u.isView||function(b){return b&&\"length\"in b},H=x.call(u.prototype),B=z.prototype;u=q.TextEncoder;\nvar D=/[\\x80-\\uD7ff\\uDC00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]?/g,e=new (t?Uint16Array:w)(32);y.prototype.decode=function(b){if(!G(b)){var c=x.call(b);if(c!==H&&c!==E&&c!==F)throw TypeError(\"Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'\");b=t?new w(b):b||[]}for(var g=c=\"\",d=0,a=b.length|0,k=a-32|0,f,h,l=0,r=0,n,m=0,p=-1;d<a;){for(f=d<=k?32:a-d|0;m<f;d=d+1|0,m=m+1|0){h=b[d]&255;switch(h>>4){case 15:n=b[d=d+1|0]&255;if(2!==n>>6||\n247<h){d=d-1|0;break}l=(h&7)<<6|n&63;r=5;h=256;case 14:n=b[d=d+1|0]&255,l<<=6,l|=(h&15)<<6|n&63,r=2===n>>6?r+4|0:24,h=h+256&768;case 13:case 12:n=b[d=d+1|0]&255,l<<=6,l|=(h&31)<<6|n&63,r=r+7|0,d<a&&2===n>>6&&l>>r&&1114112>l?(h=l,l=l-65536|0,0<=l&&(p=(l>>10)+55296|0,h=(l&1023)+56320|0,31>m?(e[m]=p,m=m+1|0,p=-1):(n=p,p=h,h=n))):(h>>=8,d=d-h-1|0,h=65533),l=r=0,f=d<=k?32:a-d|0;default:e[m]=h;continue;case 11:case 10:case 9:case 8:}e[m]=65533}g+=v(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],\ne[11],e[12],e[13],e[14],e[15],e[16],e[17],e[18],e[19],e[20],e[21],e[22],e[23],e[24],e[25],e[26],e[27],e[28],e[29],e[30],e[31]);32>m&&(g=g.slice(0,m-32|0));if(d<a){if(e[0]=p,m=~p>>>31,p=-1,g.length<c.length)continue}else-1!==p&&(g+=v(p));c+=g;g=\"\"}return c};B.encode=function(b){b=void 0===b?\"\":\"\"+b;var c=b.length|0,g=new w((c<<1)+8|0),d,a=0,k=!t;for(d=0;d<c;d=d+1|0,a=a+1|0){var f=b.charCodeAt(d)|0;if(127>=f)g[a]=f;else{if(2047>=f)g[a]=192|f>>6;else{a:{if(55296<=f)if(56319>=f){var h=b.charCodeAt(d=\nd+1|0)|0;if(56320<=h&&57343>=h){f=(f<<10)+h-56613888|0;if(65535<f){g[a]=240|f>>18;g[a=a+1|0]=128|f>>12&63;g[a=a+1|0]=128|f>>6&63;g[a=a+1|0]=128|f&63;continue}break a}f=65533}else 57343>=f&&(f=65533);!k&&d<<1<a&&d<<1<(a-7|0)&&(k=!0,h=new w(3*c),h.set(g),g=h)}g[a]=224|f>>12;g[a=a+1|0]=128|f>>6&63}g[a=a+1|0]=128|f&63}}return t?g.subarray(0,a):g.slice(0,a)};B.encodeInto=A;if(!u)q.TextDecoder=y,q.TextEncoder=z;else if(!(q=u.prototype).encodeInto){var I=new u;q.encodeInto=function(b,c){var g=b.length|0,\nd=c.length|0;if(g<d>>1){var a=I.encode(b);if((a.length|0)<d)return c.set(a),{read:g,written:a.length|0}}return A(b,c)}}})(\"undefined\"==typeof global?\"undefined\"==typeof self?this:self:global);//AnonyCo\n//# sourceMappingURL=https://cdn.jsdelivr.net/gh/AnonyCo/FastestSmallestTextEncoderDecoder/encodeInto/EncoderDecoderTogether.min.js.map\n","\n export function clockworkcostmatrix_get_pointer(value) {\n if (!value || \n typeof value !== 'object' || \n !('__wbg_ptr' in value) ||\n value.constructor.name !== 'ClockworkCostMatrix') {\n return 0;\n }\n return value.__wbg_ptr;\n }\n","/* @ts-self-types=\"./screeps_clockwork.d.ts\" */\nimport { clockworkcostmatrix_get_pointer } from './snippets/screeps-clockwork-869b2861045aa01b/inline0.js';\n\n\n/**\n * A wrapper around the `LocalCostMatrix` type from the Screeps API.\n * Instances can be passed between WASM and JS as a pointer, using the\n * methods to get and set values, rather than copying the entire matrix.\n */\nexport class ClockworkCostMatrix {\n static __wrap(ptr) {\n const obj = Object.create(ClockworkCostMatrix.prototype);\n obj.__wbg_ptr = ptr;\n ClockworkCostMatrixFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ClockworkCostMatrixFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_clockworkcostmatrix_free(ptr, 0);\n }\n /**\n * Gets the cost of a given position in the cost matrix.\n * @param {number} x\n * @param {number} y\n * @returns {number}\n */\n get(x, y) {\n const ret = wasm.clockworkcostmatrix_get(this.__wbg_ptr, x, y);\n return ret;\n }\n /**\n * Creates a new cost matrix within the WASM module. Optionally, a default value\n * can be provided to initialize all cells in the matrix to that value.\n * @param {number | null} [_default]\n */\n constructor(_default) {\n const ret = wasm.clockworkcostmatrix_new(isLikeNone(_default) ? 0xFFFFFF : _default);\n this.__wbg_ptr = ret;\n ClockworkCostMatrixFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Sets the cost of a given position in the cost matrix.\n * @param {number} x\n * @param {number} y\n * @param {number} value\n */\n set(x, y, value) {\n wasm.clockworkcostmatrix_set(this.__wbg_ptr, x, y, value);\n }\n}\nif (Symbol.dispose) ClockworkCostMatrix.prototype[Symbol.dispose] = ClockworkCostMatrix.prototype.free;\n\n/**\n * Translates `COLOR_*` and `COLORS_ALL` constants.\n * @enum {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10}\n */\nexport const Color = Object.freeze({\n Red: 1, \"1\": \"Red\",\n Purple: 2, \"2\": \"Purple\",\n Blue: 3, \"3\": \"Blue\",\n Cyan: 4, \"4\": \"Cyan\",\n Green: 5, \"5\": \"Green\",\n Yellow: 6, \"6\": \"Yellow\",\n Orange: 7, \"7\": \"Orange\",\n Brown: 8, \"8\": \"Brown\",\n Grey: 9, \"9\": \"Grey\",\n White: 10, \"10\": \"White\",\n});\n\n/**\n * Translates the `DENSITY_*` constants.\n * @enum {1 | 2 | 3 | 4}\n */\nexport const Density = Object.freeze({\n Low: 1, \"1\": \"Low\",\n Moderate: 2, \"2\": \"Moderate\",\n High: 3, \"3\": \"High\",\n Ultra: 4, \"4\": \"Ultra\",\n});\n\n/**\n * Translates direction constants.\n * @enum {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8}\n */\nexport const Direction = Object.freeze({\n Top: 1, \"1\": \"Top\",\n TopRight: 2, \"2\": \"TopRight\",\n Right: 3, \"3\": \"Right\",\n BottomRight: 4, \"4\": \"BottomRight\",\n Bottom: 5, \"5\": \"Bottom\",\n BottomLeft: 6, \"6\": \"BottomLeft\",\n Left: 7, \"7\": \"Left\",\n TopLeft: 8, \"8\": \"TopLeft\",\n});\n\n/**\n * @enum {0 | 1}\n */\nexport const DirectionOrder = Object.freeze({\n CardinalFirst: 0, \"0\": \"CardinalFirst\",\n DiagonalFirst: 1, \"1\": \"DiagonalFirst\",\n});\n\n/**\n * Maps a distance value onto individual room tile positions.\n */\nexport class DistanceMap {\n static __wrap(ptr) {\n const obj = Object.create(DistanceMap.prototype);\n obj.__wbg_ptr = ptr;\n DistanceMapFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DistanceMapFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_distancemap_free(ptr, 0);\n }\n /**\n * Gets the distance value at a given position.\n * @param {number} x\n * @param {number} y\n * @returns {number}\n */\n get(x, y) {\n const ret = wasm.distancemap_get(this.__wbg_ptr, x, y);\n return ret >>> 0;\n }\n /**\n * Sets the distance value at a given position.\n * @param {number} x\n * @param {number} y\n * @param {number} value\n */\n set(x, y, value) {\n wasm.distancemap_set(this.__wbg_ptr, x, y, value);\n }\n /**\n * Converts the distance map into a flat array of distances.\n * @returns {Uint32Array}\n */\n toArray() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.distancemap_toArray(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n}\nif (Symbol.dispose) DistanceMap.prototype[Symbol.dispose] = DistanceMap.prototype.free;\n\n/**\n * Type used for when the game returns a direction to an exit.\n *\n * Restricted more than `Direction` in that it can't be diagonal. Used as the\n * result of [`Room::find_exit_to`].\n *\n * Can be converted to [`Find`] for immediate use of [`Room::find`]\n * and [`Direction`].\n *\n * [`Room::find`]: crate::objects::Room::find\n * [`Room::find_exit_to`]: crate::objects::Room::find_exit_to\n * @enum {1 | 3 | 5 | 7}\n */\nexport const ExitDirection = Object.freeze({\n Top: 1, \"1\": \"Top\",\n Right: 3, \"3\": \"Right\",\n Bottom: 5, \"5\": \"Bottom\",\n Left: 7, \"7\": \"Left\",\n});\n\n/**\n * Translates `FIND_*` constants for interal API calls\n *\n * Unless you're storing the type of find constant to be used for a call, you\n * likely want the constants which implement the `FindConstant` trait to make\n * calls to find methods.\n *\n * This is hidden from the documentation to avoid confusion due to its narrow\n * use case, but wasm_bindgen requires it remain public.\n * @enum {1 | 3 | 5 | 7 | 10 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 10011 | 10012 | 10021 | 10022 | 10051}\n */\nexport const Find = Object.freeze({\n /**\n * Find all exit positions at the top of the room\n */\n ExitTop: 1, \"1\": \"ExitTop\",\n ExitRight: 3, \"3\": \"ExitRight\",\n ExitBottom: 5, \"5\": \"ExitBottom\",\n ExitLeft: 7, \"7\": \"ExitLeft\",\n Exit: 10, \"10\": \"Exit\",\n Creeps: 101, \"101\": \"Creeps\",\n MyCreeps: 102, \"102\": \"MyCreeps\",\n HostileCreeps: 103, \"103\": \"HostileCreeps\",\n SourcesActive: 104, \"104\": \"SourcesActive\",\n Sources: 105, \"105\": \"Sources\",\n DroppedResources: 106, \"106\": \"DroppedResources\",\n Structures: 107, \"107\": \"Structures\",\n MyStructures: 108, \"108\": \"MyStructures\",\n HostileStructures: 109, \"109\": \"HostileStructures\",\n Flags: 110, \"110\": \"Flags\",\n ConstructionSites: 111, \"111\": \"ConstructionSites\",\n MySpawns: 112, \"112\": \"MySpawns\",\n HostileSpawns: 113, \"113\": \"HostileSpawns\",\n MyConstructionSites: 114, \"114\": \"MyConstructionSites\",\n HostileConstructionSites: 115, \"115\": \"HostileConstructionSites\",\n Minerals: 116, \"116\": \"Minerals\",\n Nukes: 117, \"117\": \"Nukes\",\n Tombstones: 118, \"118\": \"Tombstones\",\n PowerCreeps: 119, \"119\": \"PowerCreeps\",\n MyPowerCreeps: 120, \"120\": \"MyPowerCreeps\",\n HostilePowerCreeps: 121, \"121\": \"HostilePowerCreeps\",\n Deposits: 122, \"122\": \"Deposits\",\n Ruins: 123, \"123\": \"Ruins\",\n ScoreContainers: 10011, \"10011\": \"ScoreContainers\",\n ScoreCollectors: 10012, \"10012\": \"ScoreCollectors\",\n SymbolContainers: 10021, \"10021\": \"SymbolContainers\",\n SymbolDecoders: 10022, \"10022\": \"SymbolDecoders\",\n Reactors: 10051, \"10051\": \"Reactors\",\n});\n\n/**\n * A flow field is a 50x50 grid (representing a room), representing viable directions\n * to travel to reach a particular target (or targets). A given tile may have multiple\n * equally valid directions, so we represent this as a bitfield (where each bit in an\n * 8-bit unsigned integer represents a direction that is either viable or not).\n */\nexport class FlowField {\n static __wrap(ptr) {\n const obj = Object.create(FlowField.prototype);\n obj.__wbg_ptr = ptr;\n FlowFieldFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n FlowFieldFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_flowfield_free(ptr, 0);\n }\n /**\n * Add a direction to the list of valid directions for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {Direction} direction\n */\n addDirection(x, y, direction) {\n wasm.flowfield_addDirection(this.__wbg_ptr, x, y, direction);\n }\n /**\n * Get the internal value for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @returns {number}\n */\n get(x, y) {\n const ret = wasm.flowfield_get(this.__wbg_ptr, x, y);\n return ret;\n }\n /**\n * Get the list of valid directions for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @returns {any[]}\n */\n getDirections(x, y) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.flowfield_getDirections(retptr, this.__wbg_ptr, x, y);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayJsValueFromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Set the internal value for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {number} value\n */\n set(x, y, value) {\n wasm.flowfield_set(this.__wbg_ptr, x, y, value);\n }\n /**\n * Set the list of valid directions for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {any[]} directions\n */\n setDirections(x, y, directions) {\n const ptr0 = passArrayJsValueToWasm0(directions, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.flowfield_setDirections(this.__wbg_ptr, x, y, ptr0, len0);\n }\n}\nif (Symbol.dispose) FlowField.prototype[Symbol.dispose] = FlowField.prototype.free;\n\n/**\n * A flow field is a 50x50 grid (representing a room), representing viable directions\n * to travel to reach a particular target (or targets). A mono flow field only stores\n * a single direction for each tile, so we represent this as 4 bits of an unsigned\n * integer (0 for no direction, 1 for TOP, etc.).\n */\nexport class MonoFlowField {\n static __wrap(ptr) {\n const obj = Object.create(MonoFlowField.prototype);\n obj.__wbg_ptr = ptr;\n MonoFlowFieldFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MonoFlowFieldFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_monoflowfield_free(ptr, 0);\n }\n /**\n * Get the direction for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @returns {Direction | undefined}\n */\n get(x, y) {\n const ret = wasm.monoflowfield_get(this.__wbg_ptr, x, y);\n return ret === 0 ? undefined : ret;\n }\n /**\n * Set the direction for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {Direction | null} [value]\n */\n set(x, y, value) {\n wasm.monoflowfield_set(this.__wbg_ptr, x, y, isLikeNone(value) ? 0 : value);\n }\n}\nif (Symbol.dispose) MonoFlowField.prototype[Symbol.dispose] = MonoFlowField.prototype.free;\n\n/**\n * Maps distance values across multiple rooms, storing a DistanceMap for each room\n */\nexport class MultiroomDistanceMap {\n static __wrap(ptr) {\n const obj = Object.create(MultiroomDistanceMap.prototype);\n obj.__wbg_ptr = ptr;\n MultiroomDistanceMapFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MultiroomDistanceMapFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_multiroomdistancemap_free(ptr, 0);\n }\n /**\n * Gets the distance value at a given position\n * @param {number} packed_pos\n * @returns {number}\n */\n get(packed_pos) {\n const ret = wasm.multiroomdistancemap_get(this.__wbg_ptr, packed_pos);\n return ret >>> 0;\n }\n /**\n * Gets the DistanceMap for a given room\n * @param {number} room_name\n * @returns {DistanceMap | undefined}\n */\n get_room(room_name) {\n const ret = wasm.multiroomdistancemap_get_room(this.__wbg_ptr, room_name);\n return ret === 0 ? undefined : DistanceMap.__wrap(ret);\n }\n /**\n * Gets the list of rooms in the map\n * @returns {Uint16Array}\n */\n get_rooms() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.multiroomdistancemap_get_rooms(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU16FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 2, 2);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Creates a new empty multiroom distance map (JavaScript constructor)\n */\n constructor() {\n const ret = wasm.multiroomdistancemap_js_new();\n this.__wbg_ptr = ret;\n MultiroomDistanceMapFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Sets the distance value at a given position\n * @param {number} packed_pos\n * @param {number} value\n */\n set(packed_pos, value) {\n wasm.multiroomdistancemap_set(this.__wbg_ptr, packed_pos, value);\n }\n}\nif (Symbol.dispose) MultiroomDistanceMap.prototype[Symbol.dispose] = MultiroomDistanceMap.prototype.free;\n\n/**\n * Maps flow field values across multiple rooms, storing a FlowField for each room\n */\nexport class MultiroomFlowField {\n static __wrap(ptr) {\n const obj = Object.create(MultiroomFlowField.prototype);\n obj.__wbg_ptr = ptr;\n MultiroomFlowFieldFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MultiroomFlowFieldFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_multiroomflowfield_free(ptr, 0);\n }\n /**\n * Adds a direction to the list of valid directions at a given position (JavaScript)\n * @param {number} packed_pos\n * @param {Direction} direction\n */\n addDirection(packed_pos, direction) {\n wasm.multiroomflowfield_addDirection(this.__wbg_ptr, packed_pos, direction);\n }\n /**\n * Gets the flow field value at a given position\n * @param {number} packed_pos\n * @returns {number}\n */\n get(packed_pos) {\n const ret = wasm.multiroomflowfield_get(this.__wbg_ptr, packed_pos);\n return ret;\n }\n /**\n * Gets the list of valid directions at a given position (JavaScript)\n * @param {number} packed_pos\n * @returns {any[]}\n */\n getDirections(packed_pos) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.multiroomflowfield_getDirections(retptr, this.__wbg_ptr, packed_pos);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayJsValueFromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Gets the FlowField for a given room\n * @param {number} room_name\n * @returns {FlowField | undefined}\n */\n getRoom(room_name) {\n const ret = wasm.multiroomflowfield_getRoom(this.__wbg_ptr, room_name);\n return ret === 0 ? undefined : FlowField.__wrap(ret);\n }\n /**\n * Gets the list of rooms in the flow field\n * @returns {Uint16Array}\n */\n getRooms() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.multiroomflowfield_getRooms(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU16FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 2, 2);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Creates a new empty multiroom flow field (JavaScript constructor)\n */\n constructor() {\n const ret = wasm.multiroomflowfield_js_new();\n this.__wbg_ptr = ret;\n MultiroomFlowFieldFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Sets the flow field value at a given position\n * @param {number} packed_pos\n * @param {number} value\n */\n set(packed_pos, value) {\n wasm.multiroomflowfield_set(this.__wbg_ptr, packed_pos, value);\n }\n /**\n * Sets the list of valid directions at a given position (JavaScript)\n * @param {number} packed_pos\n * @param {any[]} directions\n */\n setDirections(packed_pos, directions) {\n const ptr0 = passArrayJsValueToWasm0(directions, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.multiroomflowfield_setDirections(this.__wbg_ptr, packed_pos, ptr0, len0);\n }\n}\nif (Symbol.dispose) MultiroomFlowField.prototype[Symbol.dispose] = MultiroomFlowField.prototype.free;\n\n/**\n * Maps monodirectional flow field values across multiple rooms, storing a MonoFlowField for each room\n */\nexport class MultiroomMonoFlowField {\n static __wrap(ptr) {\n const obj = Object.create(MultiroomMonoFlowField.prototype);\n obj.__wbg_ptr = ptr;\n MultiroomMonoFlowFieldFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MultiroomMonoFlowFieldFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_multiroommonoflowfield_free(ptr, 0);\n }\n /**\n * Gets the direction at a given position\n * @param {number} packed_pos\n * @returns {Direction | undefined}\n */\n get(packed_pos) {\n const ret = wasm.multiroommonoflowfield_get(this.__wbg_ptr, packed_pos);\n return ret === 0 ? undefined : ret;\n }\n /**\n * Gets the MonoFlowField for a given room\n * @param {number} room_name\n * @returns {MonoFlowField | undefined}\n */\n getRoom(room_name) {\n const ret = wasm.multiroommonoflowfield_getRoom(this.__wbg_ptr, room_name);\n return ret === 0 ? undefined : MonoFlowField.__wrap(ret);\n }\n /**\n * Gets the list of rooms in the flow field\n * @returns {Uint16Array}\n */\n getRooms() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.multiroommonoflowfield_getRooms(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU16FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 2, 2);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Creates a new empty multiroom monodirectional flow field (JavaScript constructor)\n */\n constructor() {\n const ret = wasm.multiroommonoflowfield_js_new();\n this.__wbg_ptr = ret;\n MultiroomMonoFlowFieldFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Sets the direction at a given position\n * @param {number} packed_pos\n * @param {Direction | null} [direction]\n */\n set(packed_pos, direction) {\n wasm.multiroommonoflowfield_set(this.__wbg_ptr, packed_pos, isLikeNone(direction) ? 0 : direction);\n }\n}\nif (Symbol.dispose) MultiroomMonoFlowField.prototype[Symbol.dispose] = MultiroomMonoFlowField.prototype.free;\n\n/**\n * Translates the `EFFECT_*` constants, which are natural effect types\n * @enum {1001 | 1002}\n */\nexport const NaturalEffectType = Object.freeze({\n Invulnerability: 1001, \"1001\": \"Invulnerability\",\n CollapseTimer: 1002, \"1002\": \"CollapseTimer\",\n});\n\n/**\n * A list of positions representing a path.\n */\nexport class Path {\n static __wrap(ptr) {\n const obj = Object.create(Path.prototype);\n obj.__wbg_ptr = ptr;\n PathFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PathFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_path_free(ptr, 0);\n }\n /**\n * @param {number} packed_position\n */\n add(packed_position) {\n wasm.path_add(this.__wbg_ptr, packed_position);\n }\n /**\n * Given a position, find the index of the next adjacent position\n * in the path. If the position is not in the path, the target is\n * the next adjacent position closest to the end of the path. If\n * the position is neither on nor adjacent to the path, return None.\n * @param {number} packed_position\n * @returns {number | undefined}\n */\n find_next_index(packed_position) {\n const ret = wasm.path_find_next_index(this.__wbg_ptr, packed_position);\n return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;\n }\n /**\n * @param {number} index\n * @returns {number | undefined}\n */\n get(index) {\n const ret = wasm.path_get(this.__wbg_ptr, index);\n return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.path_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {Uint32Array}\n */\n to_array() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.path_to_array(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @returns {Uint32Array}\n */\n to_array_reversed() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.path_to_array_reversed(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n}\nif (Symbol.dispose) Path.prototype[Symbol.dispose] = Path.prototype.free;\n\n/**\n * Tracks fatigue cost for each position in a path. Used to calculate move time\n * for a given creep build.\n */\nexport class PathFatigue {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PathFatigueFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_pathfatigue_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.pathfatigue_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * Calculates the total move time for the path, given a fatigue ratio.\n *\n * For unboosted creeps, the ratio is `Math.floor(moveParts * 2 / fatigueParts)`\n * where `fatigue_parts` are any part except MOVE and empty CARRY parts.\n * @param {number} fatigue_ratio\n * @returns {number}\n */\n moveTime(fatigue_ratio) {\n const ret = wasm.pathfatigue_moveTime(this.__wbg_ptr, fatigue_ratio);\n return ret >>> 0;\n }\n /**\n * @param {Path} path\n */\n constructor(path) {\n _assertClass(path, Path);\n const ret = wasm.pathfatigue_new(path.__wbg_ptr);\n this.__wbg_ptr = ret;\n PathFatigueFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Refreshes fatigue cost for each position in the path. If the PathFatigue\n * has not been initialized yet, every position's fatigue cost will be set,\n * even if there is no vision in the room, based on terrain costs. If the\n * list *has* been initialized, only positions with vision will be updated.\n *\n * When there is vision, this also accounts for roads at the position.\n * @param {Path} path\n */\n refresh(path) {\n _assertClass(path, Path);\n wasm.pathfatigue_refresh(this.__wbg_ptr, path.__wbg_ptr);\n }\n}\nif (Symbol.dispose) PathFatigue.prototype[Symbol.dispose] = PathFatigue.prototype.free;\n\n/**\n * Translates the `PWR_*` constants, which are types of powers used by power\n * creeps\n * @enum {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19}\n */\nexport const PowerType = Object.freeze({\n GenerateOps: 1, \"1\": \"GenerateOps\",\n OperateSpawn: 2, \"2\": \"OperateSpawn\",\n OperateTower: 3, \"3\": \"OperateTower\",\n OperateStorage: 4, \"4\": \"OperateStorage\",\n OperateLab: 5, \"5\": \"OperateLab\",\n OperateExtension: 6, \"6\": \"OperateExtension\",\n OperateObserver: 7, \"7\": \"OperateObserver\",\n OperateTerminal: 8, \"8\": \"OperateTerminal\",\n DisruptSpawn: 9, \"9\": \"DisruptSpawn\",\n DisruptTower: 10, \"10\": \"DisruptTower\",\n Shield: 12, \"12\": \"Shield\",\n RegenSource: 13, \"13\": \"RegenSource\",\n RegenMineral: 14, \"14\": \"RegenMineral\",\n DisruptTerminal: 15, \"15\": \"DisruptTerminal\",\n OperatePower: 16, \"16\": \"OperatePower\",\n Fortify: 17, \"17\": \"Fortify\",\n OperateController: 18, \"18\": \"OperateController\",\n OperateFactory: 19, \"19\": \"OperateFactory\",\n});\n\nexport class SearchGoal {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n SearchGoalFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_searchgoal_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n get pos() {\n const ret = wasm.searchgoal_pos(this.__wbg_ptr);\n return takeObject(ret);\n }\n /**\n * @returns {number}\n */\n get range() {\n const ret = wasm.searchgoal_range(this.__wbg_ptr);\n return ret >>> 0;\n }\n}\nif (Symbol.dispose) SearchGoal.prototype[Symbol.dispose] = SearchGoal.prototype.free;\n\n/**\n * A distance map search returns both the distance map (filled out\n * with all tiles explored) and the targets found. These aren't necessarily\n * the same positions specified as targets - if the target range is 5, then\n * this is the first position in range 5 of the target. If multiple targets\n * are specified, and you care about matching the found target with one of\n * the original targets, you can iterate through your list and figure out the\n * ones that are in range of the found target(s).\n */\nexport class SearchResult {\n static __wrap(ptr) {\n const obj = Object.create(SearchResult.prototype);\n obj.__wbg_ptr = ptr;\n SearchResultFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n SearchResultFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_searchresult_free(ptr, 0);\n }\n /**\n * @returns {MultiroomDistanceMap}\n */\n get distance_map() {\n const ret = wasm.searchresult_distance_map(this.__wbg_ptr);\n return MultiroomDistanceMap.__wrap(ret);\n }\n /**\n * @returns {Uint32Array}\n */\n get found_targets() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.searchresult_found_targets(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @returns {number}\n */\n get ops() {\n const ret = wasm.searchresult_ops(this.__wbg_ptr);\n return ret >>> 0;\n }\n}\nif (Symbol.dispose) SearchResult.prototype[Symbol.dispose] = SearchResult.prototype.free;\n\n/**\n * Translates `TERRAIN_*` constants.\n * @enum {0 | 1 | 2}\n */\nexport const Terrain = Object.freeze({\n Plain: 0, \"0\": \"Plain\",\n Wall: 1, \"1\": \"Wall\",\n Swamp: 2, \"2\": \"Swamp\",\n});\n\n/**\n * Exports the global range calculation between two positions.\n * @param {number} packed_pos_1\n * @param {number} packed_pos_2\n * @returns {number}\n */\nexport function get_range(packed_pos_1, packed_pos_2) {\n const ret = wasm.get_range(packed_pos_1, packed_pos_2);\n return ret >>> 0;\n}\n\n/**\n * @param {number} room_name\n * @param {number | null} [plain_cost]\n * @param {number | null} [swamp_cost]\n * @param {number | null} [wall_cost]\n * @returns {ClockworkCostMatrix}\n */\nexport function get_terrain_cost_matrix(room_name, plain_cost, swamp_cost, wall_cost) {\n const ret = wasm.get_terrain_cost_matrix(room_name, isLikeNone(plain_cost) ? 0xFFFFFF : plain_cost, isLikeNone(swamp_cost) ? 0xFFFFFF : swamp_cost, isLikeNone(wall_cost) ? 0xFFFFFF : wall_cost);\n return ClockworkCostMatrix.__wrap(ret);\n}\n\n/**\n * @param {Uint32Array} start_packed\n * @param {Function} get_cost_matrix\n * @param {number} max_rooms\n * @param {number} max_ops\n * @param {number} max_path_cost\n * @param {Uint32Array | null} [any_of_destinations]\n * @param {Uint32Array | null} [all_of_destinations]\n * @returns {SearchResult}\n */\nexport function js_astar_multiroom_distance_map(start_packed, get_cost_matrix, max_rooms, max_ops, max_path_cost, any_of_destinations, all_of_destinations) {\n try {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(any_of_destinations) ? 0 : passArray32ToWasm0(any_of_destinations, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = isLikeNone(all_of_destinations) ? 0 : passArray32ToWasm0(all_of_destinations, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n const ret = wasm.js_astar_multiroom_distance_map(ptr0, len0, addBorrowedObject(get_cost_matrix), max_rooms, max_ops, max_path_cost, ptr1, len1, ptr2, len2);\n return SearchResult.__wrap(ret);\n } finally {\n heap[stack_pointer++] = undefined;\n }\n}\n\n/**\n * WASM wrapper for the BFS multiroom distance map function.\n *\n * # Arguments\n * * `start_packed` - Array of packed position integers representing start positions\n * * `get_cost_matrix` - JavaScript function that returns cost matrices for rooms\n * * `max_ops` - Maximum number of tiles to explore\n * * `max_rooms` - Maximum number of rooms to explore\n * * `max_room_distance` - Maximum Manhattan distance in rooms to explore\n * * `max_path_cost` - Maximum distance in tiles to explore\n * * `any_of_destinations` - Array of packed positions to trigger early exit when any are reached\n * * `all_of_destinations` - Array of packed positions to trigger early exit when all are reached\n *\n * # Returns\n * A `MultiroomDistanceMap` containing the distances from the start positions\n * @param {Uint32Array} start_packed\n * @param {Function} get_cost_matrix\n * @param {number} max_ops\n * @param {number} max_rooms\n * @param {number} max_path_cost\n * @param {Uint32Array | null} [any_of_destinations]\n * @param {Uint32Array | null} [all_of_destinations]\n * @returns {SearchResult}\n */\nexport function js_bfs_multiroom_distance_map(start_packed, get_cost_matrix, max_ops, max_rooms, max_path_cost, any_of_destinations, all_of_destinations) {\n try {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(any_of_destinations) ? 0 : passArray32ToWasm0(any_of_destinations, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = isLikeNone(all_of_destinations) ? 0 : passArray32ToWasm0(all_of_destinations, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n const ret = wasm.js_bfs_multiroom_distance_map(ptr0, len0, addBorrowedObject(get_cost_matrix), max_ops, max_rooms, max_path_cost, ptr1, len1, ptr2, len2);\n return SearchResult.__wrap(ret);\n } finally {\n heap[stack_pointer++] = undefined;\n }\n}\n\n/**\n * @param {Uint32Array} start_packed\n * @param {Function} get_cost_matrix\n * @param {number} max_ops\n * @param {number} max_rooms\n * @param {number} max_path_cost\n * @param {Uint32Array | null} [any_of_destinations]\n * @param {Uint32Array | null} [all_of_destinations]\n * @returns {SearchResult}\n */\nexport function js_dijkstra_multiroom_distance_map(start_packed, get_cost_matrix, max_ops, max_rooms, max_path_cost, any_of_destinations, all_of_destinations) {\n try {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(any_of_destinations) ? 0 : passArray32ToWasm0(any_of_destinations, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = isLikeNone(all_of_destinations) ? 0 : passArray32ToWasm0(all_of_destinations, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n const ret = wasm.js_dijkstra_multiroom_distance_map(ptr0, len0, addBorrowedObject(get_cost_matrix), max_ops, max_rooms, max_path_cost, ptr1, len1, ptr2, len2);\n return SearchResult.__wrap(ret);\n } finally {\n heap[stack_pointer++] = undefined;\n }\n}\n\n/**\n * @param {number} start\n * @param {MultiroomDistanceMap} distance_map\n * @param {DirectionOrder} direction_order\n * @returns {Path}\n */\nexport function js_path_to_multiroom_distance_map_origin(start, distance_map, direction_order) {\n _assertClass(distance_map, MultiroomDistanceMap);\n const ret = wasm.js_path_to_multiroom_distance_map_origin(start, distance_map.__wbg_ptr, direction_order);\n return Path.__wrap(ret);\n}\n\n/**\n * @param {number} start\n * @param {MultiroomFlowField} flow_field\n * @returns {Path}\n */\nexport function js_path_to_multiroom_flow_field_origin(start, flow_field) {\n _assertClass(flow_field, MultiroomFlowField);\n const ret = wasm.js_path_to_multiroom_flow_field_origin(start, flow_field.__wbg_ptr);\n return Path.__wrap(ret);\n}\n\n/**\n * @param {number} start\n * @param {MultiroomMonoFlowField} flow_field\n * @returns {Path}\n */\nexport function js_path_to_multiroom_mono_flow_field_origin(start, flow_field) {\n _assertClass(flow_field, MultiroomMonoFlowField);\n const ret = wasm.js_path_to_multiroom_mono_flow_field_origin(start, flow_field.__wbg_ptr);\n return Path.__wrap(ret);\n}\n\n/**\n * Creates a flow field for the given distance map.\n * @param {MultiroomDistanceMap} distance_map\n * @param {DirectionOrder} direction_order\n * @returns {MultiroomFlowField}\n */\nexport function multiroomFlowField(distance_map, direction_order) {\n _assertClass(distance_map, MultiroomDistanceMap);\n const ret = wasm.multiroomFlowField(distance_map.__wbg_ptr, direction_order);\n return MultiroomFlowField.__wrap(ret);\n}\n\n/**\n * Creates a monodirectional flow field for the given distance map.\n * @param {MultiroomDistanceMap} distance_map\n * @param {DirectionOrder} direction_order\n * @returns {MultiroomMonoFlowField}\n */\nexport function multiroomMonoFlowField(distance_map, direction_order) {\n _assertClass(distance_map, MultiroomDistanceMap);\n const ret = wasm.multiroomMonoFlowField(distance_map.__wbg_ptr, direction_order);\n return MultiroomMonoFlowField.__wrap(ret);\n}\n\n/**\n * @returns {string}\n */\nexport function version() {\n let deferred1_0;\n let deferred1_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.version(retptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred1_0 = r0;\n deferred1_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n}\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg___wbindgen_is_null_2042690d351e14f0: function(arg0) {\n const ret = getObject(arg0) === null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_35bb9f4c7fd651d5: function(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n },\n __wbg___wbindgen_number_get_f73a1244370fcc2c: function(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_rethrow_2b7cc655458909c2: function(arg0) {\n throw takeObject(arg0);\n },\n __wbg___wbindgen_throw_9c31b086c2b26051: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_call_dfde26266607c996: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments); },\n __wbg_ceil_2f02237b685bdce4: function(arg0) {\n const ret = Math.ceil(arg0);\n return ret;\n },\n __wbg_clockworkcostmatrix_get_pointer_15ba3af769956aef: function(arg0) {\n const ret = clockworkcostmatrix_get_pointer(takeObject(arg0));\n return ret;\n },\n __wbg_create_55d0f7a358253d86: function(arg0) {\n const ret = Object.create(getObject(arg0));\n return addHeapObject(ret);\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_getRawBuffer_2165a0506d77f9ca: function(arg0, arg1) {\n const ret = getObject(arg0).getRawBuffer(getObject(arg1));\n return addHeapObject(ret);\n },\n __wbg_getRoomTerrain_ff542df2ea2015b1: function() { return handleError(function (arg0) {\n const ret = Game.map.getRoomTerrain(getObject(arg0));\n return addHeapObject(ret);\n }, arguments); },\n __wbg_get_8f8e5734959cd5fc: function(arg0, arg1, arg2) {\n const ret = getObject(arg0).get(arg1, arg2);\n return ret;\n },\n __wbg_get_unchecked_1dfe6d05ad91d9b7: function(arg0, arg1) {\n const ret = getObject(arg0)[arg1 >>> 0];\n return addHeapObject(ret);\n },\n __wbg_get_value_3083233b2ad9f36e: function(arg0, arg1) {\n const ret = getObject(arg0)[getObject(arg1)];\n return addHeapObject(ret);\n },\n __wbg_length_2591a0f4f659a55c: function(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n },\n __wbg_log_3f6a135259953cf7: function(arg0, arg1) {\n console.log(getStringFromWasm0(arg0, arg1));\n },\n __wbg_lookFor_0ddc4d9f22e9bfe5: function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).lookFor(__wbindgen_enum_Look[arg1]);\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n }, arguments); },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return addHeapObject(ret);\n },\n __wbg_new_internal_dc21004de3373c5f: function() { return handleError(function (arg0) {\n const ret = new Room.Terrain(getObject(arg0));\n return addHeapObject(ret);\n }, arguments); },\n __wbg_rooms_c5dbffde521939da: function() {\n const ret = Game.rooms;\n return addHeapObject(ret);\n },\n __wbg_set_packed_cc769b1ab2aa7e8e: function(arg0, arg1) {\n getObject(arg0).__packedPos = arg1 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = getObject(arg1).stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_static_accessor_ROOM_POSITION_PROTOTYPE_9def1bb4de86c8f7: function() {\n const ret = RoomPosition.prototype;\n return addHeapObject(ret);\n },\n __wbg_structure_type_dbc211ed19dd8423: function(arg0) {\n const ret = getObject(arg0).structureType;\n return (__wbindgen_enum_StructureType.indexOf(ret) + 1 || 22) - 1;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return addHeapObject(ret);\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref(\"Uint8Array\")`.\n const ret = getArrayU8FromWasm0(arg0, arg1);\n return addHeapObject(ret);\n },\n __wbindgen_cast_0000000000000003: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n },\n __wbindgen_object_drop_ref: function(arg0) {\n takeObject(arg0);\n },\n };\n return {\n __proto__: null,\n \"./screeps_clockwork_bg.js\": import0,\n };\n}\n\nconst __wbindgen_enum_Look = [\"creep\", \"energy\", \"resource\", \"source\", \"mineral\", \"structure\", \"flag\", \"constructionSite\", \"nuke\", \"terrain\", \"tombstone\", \"powerCreep\", \"deposit\", \"ruin\", \"scoreContainer\", \"scoreCollector\", \"symbolContainer\", \"symbolDecoder\", \"reactor\"];\n\n\nconst __wbindgen_enum_StructureType = [\"spawn\", \"extension\", \"road\", \"constructedWall\", \"rampart\", \"keeperLair\", \"portal\", \"controller\", \"link\", \"storage\", \"tower\", \"observer\", \"powerBank\", \"powerSpawn\", \"extractor\", \"lab\", \"terminal\", \"container\", \"nuker\", \"factory\", \"invaderCore\"];\nconst ClockworkCostMatrixFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_clockworkcostmatrix_free(ptr, 1));\nconst DistanceMapFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_distancemap_free(ptr, 1));\nconst FlowFieldFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_flowfield_free(ptr, 1));\nconst MonoFlowFieldFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_monoflowfield_free(ptr, 1));\nconst MultiroomDistanceMapFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_multiroomdistancemap_free(ptr, 1));\nconst MultiroomFlowFieldFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_multiroomflowfield_free(ptr, 1));\nconst MultiroomMonoFlowFieldFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_multiroommonoflowfield_free(ptr, 1));\nconst PathFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_path_free(ptr, 1));\nconst PathFatigueFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_pathfatigue_free(ptr, 1));\nconst SearchGoalFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_searchgoal_free(ptr, 1));\nconst SearchResultFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_searchresult_free(ptr, 1));\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\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n}\n\nfunction addBorrowedObject(obj) {\n if (stack_pointer == 1) throw new Error('out of js stack');\n heap[--stack_pointer] = obj;\n return stack_pointer;\n}\n\nfunction dropObject(idx) {\n if (idx < 1028) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction getArrayJsValueFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n const mem = getDataViewMemory0();\n const result = [];\n for (let i = ptr; i < ptr + 4 * len; i += 4) {\n result.push(takeObject(mem.getUint32(i, true)));\n }\n return result;\n}\n\nfunction getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return decodeText(ptr >>> 0, len);\n}\n\nlet cachedUint16ArrayMemory0 = null;\nfunction getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getObject(idx) { return heap[idx]; }\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_exn_store(addHeapObject(e));\n }\n}\n\nlet heap = new Array(1024).fill(undefined);\nheap.push(undefined, null, true, false);\n\nlet heap_next = heap.length;\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayJsValueToWasm0(array, malloc) {\n const ptr = malloc(array.length * 4, 4) >>> 0;\n const mem = getDataViewMemory0();\n for (let i = 0; i < array.length; i++) {\n mem.setUint32(ptr + 4 * i, addHeapObject(array[i]), true);\n }\n WASM_VECTOR_LEN = array.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet stack_pointer = 1024;\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = 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}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasmInstance, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasmInstance = instance;\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (module_or_path === undefined) {\n module_or_path = new URL('screeps_clockwork_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","const cache = new Set<{ free: () => void }>();\nlet cacheTick = 0;\n\n/**\n * Mark an item as ephemeral. This means that the item will be freed after the\n * current tick.\n *\n * If you don't use this to clean up your data, you'll need to call `free()`\n * yourself.\n *\n * @param item - The item to be cleaned up.\n * @returns The item.\n */\nexport function ephemeral<T extends { free: () => void }>(item: T) {\n if (cacheTick !== Game.time) {\n for (const item of cache) {\n try {\n item.free();\n } catch {\n // may have already been cleaned up\n }\n }\n cache.clear();\n cacheTick = Game.time;\n }\n cache.add(item);\n return item;\n}\n\n/**\n * Persist an ephemeral item. This means that the item will not be freed after\n * the current tick.\n *\n * @param item - The item to be persisted.\n * @returns The item.\n */\nexport function persist<T extends { free: () => void }>(item: T) {\n cache.delete(item);\n return item;\n}\n","export const MAX_USIZE = 0xffffffff;\n","export function fromPacked(packedPos: number): RoomPosition {\n const pos = Object.create(RoomPosition.prototype);\n // Screeps stores __packedPos as a signed int32, while Clockwork receives\n // packed positions from WASM as u32. Re-sign the same bits so Map lookups and\n // direct comparisons against native RoomPosition.__packedPos values work.\n pos.__packedPos = packedPos | 0;\n return pos;\n}\n\nexport function fromPackedRoomName(packedRoomName: number): string {\n // Handle sim room case\n if (packedRoomName === 0) {\n return 'sim';\n }\n\n const HALF_WORLD_SIZE = 128;\n const x_coord = ((packedRoomName >> 8) & 0xff) - HALF_WORLD_SIZE;\n const y_coord = (packedRoomName & 0xff) - HALF_WORLD_SIZE;\n\n const result = (x_coord >= 0 ? `E${x_coord}` : `W${~x_coord}`) + (y_coord >= 0 ? `S${y_coord}` : `N${~y_coord}`);\n\n return result;\n}\n\nexport function packRoomName(room: string): number {\n // Handle sim room case\n if (room === 'sim') {\n return 0;\n }\n\n const HALF_WORLD_SIZE = 128;\n const [, h_dir, h_coord, v_dir, v_coord] = room.match(/^([WE])(\\d+)([NS])(\\d+)$/)!;\n\n let x = parseInt(h_coord);\n if (h_dir === 'W') {\n x = ~x;\n }\n\n let y = parseInt(v_coord);\n if (v_dir === 'N') {\n y = ~y;\n }\n\n x += HALF_WORLD_SIZE;\n y += HALF_WORLD_SIZE;\n\n return (x << 8) | y;\n}\n","import { FlowField } from '../wasm/screeps_clockwork';\n\n/**\n * A flow field for a single room that stores multiple directions per tile.\n */\nexport class ClockworkFlowField {\n constructor(private _flowField: FlowField) {}\n\n /**\n * Get the internal value for a given coordinate.\n */\n get(x: number, y: number): number {\n return this._flowField.get(x, y);\n }\n\n /**\n * Set the internal value for a given coordinate.\n */\n set(x: number, y: number, value: number): void {\n this._flowField.set(x, y, value);\n }\n\n /**\n * Get the list of valid directions for a given coordinate.\n */\n getDirections(x: number, y: number): DirectionConstant[] {\n return this._flowField.getDirections(x, y);\n }\n\n /**\n * Set the list of valid directions for a given coordinate.\n */\n setDirections(x: number, y: number, directions: DirectionConstant[]): void {\n this._flowField.setDirections(x, y, directions);\n }\n\n /**\n * Add a direction to the list of valid directions for a given coordinate.\n */\n addDirection(x: number, y: number, direction: DirectionConstant): void {\n this._flowField.addDirection(x, y, direction);\n }\n\n /**\n * Free the memory allocated for this flow field.\n */\n free(): void {\n this._flowField.free();\n }\n}\n","import { fromPacked } from '../utils/fromPacked';\nimport { Path } from '../wasm/screeps_clockwork';\n\n/**\n * A path from a start position to an end position. Typically returned by a\n * function like `ClockworkMultiroomFlowField.pathToOrigin` rather than created directly.\n */\nexport class ClockworkPath {\n constructor(private readonly path: Path) {}\n\n /**\n * Iterate over the path.\n *\n * @example\n * ```typescript\n * for (const pos of path) {\n * console.logUnsafe(pos);\n * }\n * ```\n */\n [Symbol.iterator]() {\n let index = 0;\n const length = this.length;\n\n return {\n next: () => {\n if (index < length - 1) {\n return { value: this.get(index++), done: false };\n } else {\n return { value: this.get(index++), done: true };\n }\n }\n };\n }\n\n /**\n * Iterate over the path in reverse order.\n *\n * @example\n * ```typescript\n * for (const pos of path.reversed()) {\n * console.logUnsafe(pos);\n * }\n * ```\n */\n *reversed() {\n let index = this.length - 1;\n\n return {\n next: () => {\n if (index > 0) {\n return { value: this.get(index--), done: false };\n } else {\n return { value: this.get(index--), done: true };\n }\n }\n };\n }\n\n /**\n * Get the position at a given index.\n */\n get(index: number) {\n const packedPos = this.path.get(index);\n if (packedPos === undefined) {\n throw new Error('Index out of bounds');\n }\n return fromPacked(packedPos);\n }\n\n /**\n * Get the length of the path.\n */\n get length() {\n return this.path.len();\n }\n\n /**\n * Given a current position, find the index of the next position in the path.\n */\n findNextIndex(pos: RoomPosition) {\n return this.path.find_next_index(pos.__packedPos);\n }\n\n /**\n * Convert the path to an array of positions.\n */\n toArray() {\n const result: RoomPosition[] = [];\n for (const packedPos of this.path.to_array()) {\n result.push(fromPacked(packedPos));\n }\n return result;\n }\n\n /**\n * Convert the path to an array of positions in reverse order.\n */\n toArrayReversed() {\n const result: RoomPosition[] = [];\n for (const packedPos of this.path.to_array_reversed()) {\n result.push(fromPacked(packedPos));\n }\n return result;\n }\n\n /**\n * Free the memory allocated for this path.\n */\n free() {\n this.path.free();\n }\n}\n","import { fromPackedRoomName, packRoomName } from '../utils/fromPacked';\nimport { MultiroomFlowField, js_path_to_multiroom_flow_field_origin } from '../wasm/screeps_clockwork';\nimport { ClockworkFlowField } from './flowField';\nimport { ClockworkPath } from './path';\n\n/**\n * A flow field that spans multiple rooms, storing multiple directions per tile.\n */\nexport class ClockworkMultiroomFlowField {\n constructor(private _flowField: MultiroomFlowField) {}\n\n /**\n * Get the flow field value at a given position.\n */\n get(pos: RoomPosition): number {\n return this._flowField.get(pos.__packedPos);\n }\n\n /**\n * Set the flow field value at a given position.\n */\n set(pos: RoomPosition, value: number): void {\n this._flowField.set(pos.__packedPos, value);\n }\n\n /**\n * Get the list of valid directions at a given position.\n */\n getDirections(pos: RoomPosition): DirectionConstant[] {\n return this._flowField.getDirections(pos.__packedPos);\n }\n\n /**\n * Set the list of valid directions at a given position.\n */\n setDirections(pos: RoomPosition, directions: DirectionConstant[]): void {\n this._flowField.setDirections(pos.__packedPos, directions);\n }\n\n /**\n * Add a direction to the list of valid directions at a given position.\n */\n addDirection(pos: RoomPosition, direction: DirectionConstant): void {\n this._flowField.addDirection(pos.__packedPos, direction);\n }\n\n /**\n * Get the list of rooms in the flow field.\n */\n getRooms(): string[] {\n const rooms = [];\n for (const packedRoomName of this._flowField.getRooms()) {\n rooms.push(fromPackedRoomName(packedRoomName));\n }\n return rooms;\n }\n\n /**\n * Get the flow field for a given room.\n */\n getRoom(roomName: string): ClockworkFlowField | null {\n const flowField = this._flowField.getRoom(packRoomName(roomName));\n return flowField ? new ClockworkFlowField(flowField) : null;\n }\n\n /**\n * Find a path from a given position to the origin of the flow field.\n */\n pathToOrigin(start: RoomPosition): ClockworkPath {\n return new ClockworkPath(js_path_to_multiroom_flow_field_origin(start.__packedPos, this._flowField));\n }\n\n /**\n * Free the memory allocated for this flow field.\n */\n free(): void {\n this._flowField.free();\n }\n}\n","import { MonoFlowField } from '../wasm/screeps_clockwork';\n\n/**\n * A flow field for a single room that stores one direction per tile.\n */\nexport class ClockworkMonoFlowField {\n constructor(private _flowField: MonoFlowField) {}\n\n /**\n * Get the direction for a given coordinate.\n */\n get(x: number, y: number): DirectionConstant | undefined {\n return this._flowField.get(x, y);\n }\n\n /**\n * Set the direction for a given coordinate.\n */\n set(x: number, y: number, value?: DirectionConstant): void {\n this._flowField.set(x, y, value);\n }\n\n /**\n * Free the memory allocated for this flow field.\n */\n free(): void {\n this._flowField.free();\n }\n}\n","import { fromPackedRoomName, packRoomName } from '../utils/fromPacked';\nimport { MultiroomMonoFlowField, js_path_to_multiroom_mono_flow_field_origin } from '../wasm/screeps_clockwork';\nimport { ClockworkMonoFlowField } from './monoFlowField';\nimport { ClockworkPath } from './path';\n\n/**\n * A flow field that spans multiple rooms, storing a single direction per tile.\n */\nexport class ClockworkMultiroomMonoFlowField {\n constructor(private _flowField: MultiroomMonoFlowField) {}\n\n /**\n * Get the direction at a given position.\n */\n get(pos: RoomPosition): DirectionConstant | null {\n return this._flowField.get(pos.__packedPos) ?? null;\n }\n\n /**\n * Set the direction at a given position.\n */\n set(pos: RoomPosition, direction: DirectionConstant | null): void {\n this._flowField.set(pos.__packedPos, direction ?? undefined);\n }\n\n /**\n * Get the list of rooms in the flow field.\n */\n getRooms(): string[] {\n const rooms = [];\n for (const packedRoomName of this._flowField.getRooms()) {\n rooms.push(fromPackedRoomName(packedRoomName));\n }\n return rooms;\n }\n\n /**\n * Get the flow field for a given room.\n */\n getRoom(roomName: string): ClockworkMonoFlowField | null {\n const flowField = this._flowField.getRoom(packRoomName(roomName));\n return flowField ? new ClockworkMonoFlowField(flowField) : null;\n }\n\n /**\n * Find a path from a given position to the origin of the flow field.\n */\n pathToOrigin(start: RoomPosition): ClockworkPath {\n return new ClockworkPath(js_path_to_multiroom_mono_flow_field_origin(start.__packedPos, this._flowField));\n }\n\n /**\n * Free the memory allocated for this flow field.\n */\n free(): void {\n this._flowField.free();\n }\n}\n","import { fromPackedRoomName, packRoomName } from '../utils/fromPacked';\nimport {\n DistanceMap,\n DirectionOrder,\n js_path_to_multiroom_distance_map_origin,\n MultiroomDistanceMap,\n multiroomFlowField,\n multiroomMonoFlowField\n} from '../wasm/screeps_clockwork';\nimport { ClockworkMultiroomFlowField } from './multiroomFlowField';\nimport { ClockworkMultiroomMonoFlowField } from './multiroomMonoFlowField';\nimport { ClockworkPath } from './path';\n\nexport interface DirectionOrderOptions {\n directionOrder?: DirectionOrder;\n}\n\nconst DEFAULT_DIRECTION_ORDER = DirectionOrder.CardinalFirst;\n\n/**\n * A distance map that covers multiple rooms. Typically returned by a function\n * like `bfsMultiroomDistanceMap` rather than created directly.\n */\nexport class ClockworkMultiroomDistanceMap {\n constructor(private _map: MultiroomDistanceMap) {}\n\n /**\n * Get the stored value for a given position.\n */\n get(pos: RoomPosition): number {\n return this._map.get(pos.__packedPos);\n }\n\n /**\n * Set the stored value for a given position.\n */\n set(pos: RoomPosition, value: number) {\n this._map.set(pos.__packedPos, value);\n }\n\n /**\n * Get the DistanceMap for a given room.\n */\n getRoom(room: string): DistanceMap | undefined {\n return this._map.get_room(packRoomName(room));\n }\n\n /**\n * List all the rooms covered by this distance map.\n */\n getRooms(): string[] {\n return [...this._map.get_rooms()].map(room => fromPackedRoomName(room));\n }\n\n /**\n * Free the memory allocated for this distance map.\n */\n free() {\n this._map.free();\n }\n\n /**\n * Path to the origin from a given position.\n * Pass `DirectionOrder.DiagonalFirst` to prefer diagonal steps when multiple neighbors are equally close.\n */\n pathToOrigin(start: RoomPosition, options: DirectionOrderOptions = {}): ClockworkPath {\n return new ClockworkPath(\n js_path_to_multiroom_distance_map_origin(\n start.__packedPos,\n this._map,\n options.directionOrder ?? DEFAULT_DIRECTION_ORDER\n )\n );\n }\n\n /**\n * Flow field for this distance map.\n * Pass `DirectionOrder.DiagonalFirst` to prefer diagonal directions when multiple neighbors are equally close.\n */\n toFlowField(options: DirectionOrderOptions = {}): ClockworkMultiroomFlowField {\n return new ClockworkMultiroomFlowField(\n multiroomFlowField(this._map, options.directionOrder ?? DEFAULT_DIRECTION_ORDER)\n );\n }\n\n /**\n * Mono-directional flow field for this distance map.\n * Pass `DirectionOrder.DiagonalFirst` to prefer diagonal directions when multiple neighbors are equally close.\n */\n toMonoFlowField(options: DirectionOrderOptions = {}): ClockworkMultiroomMonoFlowField {\n return new ClockworkMultiroomMonoFlowField(\n multiroomMonoFlowField(this._map, options.directionOrder ?? DEFAULT_DIRECTION_ORDER)\n );\n }\n}\n","import { fromPacked } from '../utils/fromPacked';\nimport { SearchResult } from '../wasm/screeps_clockwork';\nimport { ClockworkMultiroomDistanceMap } from './multiroomDistanceMap';\n\nexport function fromPackedSearchResult(result: SearchResult) {\n const foundTargets = result.found_targets.reduce((acc, pos) => {\n acc.push(fromPacked(pos));\n return acc;\n }, [] as RoomPosition[]);\n const distanceMap = new ClockworkMultiroomDistanceMap(result.distance_map);\n const ops = result.ops;\n result.free();\n\n return {\n distanceMap,\n foundTargets,\n ops\n };\n}\n","import { MAX_USIZE } from '../utils/constants';\nimport { fromPackedRoomName } from '../utils/fromPacked';\nimport { ClockworkCostMatrix, js_astar_multiroom_distance_map } from '../wasm/screeps_clockwork';\nimport { fromPackedSearchResult } from './searchResult';\n\n/**\n * Create a distance map for the given start positions, using a breadth-first search.\n * This does not factor in terrain costs (treating anything less than 255 in the cost\n * matrix as passable), so it's faster but less useful than Dijkstra's algorithm.\n *\n * This calculates a distance map across multiple rooms, with a few configurable limits:\n * - `maxOps`: The maximum number of pathfinding operations to perform.\n * - `maxRooms`: The maximum number of rooms to explore.\n * - `maxPathCost`: Don't explore tiles with a greater path cost than this.\n *\n * At least one of these limits must be set.\n *\n * @param start - The starting positions.\n * @param options - The options for the distance map.\n * @returns A multi-room distance map.\n */\nexport function astarMultiroomDistanceMap(\n start: RoomPosition[],\n {\n costMatrixCallback,\n maxRooms = MAX_USIZE,\n maxOps = MAX_USIZE,\n maxPathCost = MAX_USIZE,\n anyOfDestinations,\n allOfDestinations\n }: {\n costMatrixCallback: (room: string) => ClockworkCostMatrix | undefined;\n maxRooms?: number;\n maxOps?: number;\n maxPathCost?: number;\n anyOfDestinations?: { pos: RoomPosition; range: number }[];\n allOfDestinations?: { pos: RoomPosition; range: number }[];\n }\n) {\n if ([maxRooms, maxOps, maxPathCost].every(n => n === MAX_USIZE) && !anyOfDestinations && !allOfDestinations) {\n throw new Error(\n 'At least one of maxRooms, maxOps, maxPathCost, anyOfDestinations, or allOfDestinations must be set'\n );\n }\n\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_astar_multiroom_distance_map(\n startPacked,\n (room: number) => costMatrixCallback(fromPackedRoomName(room)),\n maxRooms,\n maxOps,\n maxPathCost,\n anyOfDestinations\n ? new Uint32Array(\n anyOfDestinations.reduce((acc, { pos, range }) => {\n acc.push(pos.__packedPos, range);\n return acc;\n }, [] as number[])\n )\n : undefined,\n allOfDestinations\n ? new Uint32Array(\n allOfDestinations.reduce((acc, { pos, range }) => {\n acc.push(pos.__packedPos, range);\n return acc;\n }, [] as number[])\n )\n : undefined\n );\n\n return fromPackedSearchResult(result);\n}\n","import { MAX_USIZE } from '../utils/constants';\nimport { fromPackedRoomName } from '../utils/fromPacked';\nimport { ClockworkCostMatrix, js_bfs_multiroom_distance_map } from '../wasm/screeps_clockwork';\nimport { fromPackedSearchResult } from './searchResult';\n\n/**\n * Create a distance map for the given start positions, using a breadth-first search.\n * This does not factor in terrain costs (treating anything less than 255 in the cost\n * matrix as passable), so it's faster but less useful than Dijkstra's algorithm.\n *\n * This calculates a distance map across multiple rooms, with a few configurable limits:\n * - `maxOps`: The maximum number of pathfinding operations to perform.\n * - `maxRooms`: The maximum number of rooms to explore.\n * - `maxPathCost`: Don't explore tiles with a greater path cost than this.\n *\n * At least one of these limits must be set.\n *\n * @param start - The starting positions.\n * @param options - The options for the distance map.\n * @returns A multi-room distance map.\n */\nexport function bfsMultiroomDistanceMap(\n start: RoomPosition[],\n {\n costMatrixCallback,\n maxOps = MAX_USIZE,\n maxRooms = MAX_USIZE,\n maxPathCost = MAX_USIZE,\n anyOfDestinations,\n allOfDestinations\n }: {\n costMatrixCallback: (room: string) => ClockworkCostMatrix | undefined;\n maxOps?: number;\n maxRooms?: number;\n maxPathCost?: number;\n anyOfDestinations?: { pos: RoomPosition; range: number }[];\n allOfDestinations?: { pos: RoomPosition; range: number }[];\n }\n) {\n if ([maxOps, maxRooms, maxPathCost].every(n => n === MAX_USIZE) && !anyOfDestinations && !allOfDestinations) {\n throw new Error(\n 'At least one of maxOps, maxRooms, maxRoomDistance, maxPathCost, anyOfDestinations, or allOfDestinations must be set'\n );\n }\n\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_bfs_multiroom_distance_map(\n startPacked,\n (room: number) => costMatrixCallback(fromPackedRoomName(room)),\n maxOps,\n maxRooms,\n maxPathCost,\n anyOfDestinations\n ? new Uint32Array(\n anyOfDestinations.reduce((acc, { pos, range }) => {\n acc.push(pos.__packedPos, range);\n return acc;\n }, [] as number[])\n )\n : undefined,\n allOfDestinations\n ? new Uint32Array(\n allOfDestinations.reduce((acc, { pos, range }) => {\n acc.push(pos.__packedPos, range);\n return acc;\n }, [] as number[])\n )\n : undefined\n );\n\n return fromPackedSearchResult(result);\n}\n","import { MAX_USIZE } from '../utils/constants';\nimport { fromPackedRoomName } from '../utils/fromPacked';\nimport { ClockworkCostMatrix, js_dijkstra_multiroom_distance_map } from '../wasm/screeps_clockwork';\nimport { fromPackedSearchResult } from './searchResult';\n\n/**\n * Create a distance map for the given start positions, using Dijkstra's algorithm to\n * factor in terrain costs (0-255, where 255 is impassable).\n *\n * This calculates a distance map across multiple rooms, with a few configurable limits:\n * - `maxOps`: The maximum number of pathfinding operations to perform.\n * - `maxRooms`: The maximum number of rooms to explore.\n * - `maxPathCost`: Don't explore tiles with a greater path cost than this.\n *\n * At least one of these limits must be set.\n *\n * @param start - The starting positions.\n * @param options - The options for the distance map.\n * @returns A multi-room distance map.\n */\nexport function dijkstraMultiroomDistanceMap(\n start: RoomPosition[],\n {\n costMatrixCallback,\n maxOps = MAX_USIZE,\n maxRooms = MAX_USIZE,\n maxPathCost = MAX_USIZE,\n anyOfDestinations,\n allOfDestinations\n }: {\n costMatrixCallback: (room: string) => ClockworkCostMatrix | undefined;\n maxOps?: number;\n maxRooms?: number;\n maxPathCost?: number;\n anyOfDestinations?: { pos: RoomPosition; range: number }[];\n allOfDestinations?: { pos: RoomPosition; range: number }[];\n }\n) {\n if ([maxOps, maxRooms, maxPathCost].every(n => n === MAX_USIZE) && !anyOfDestinations && !allOfDestinations) {\n throw new Error(\n 'At least one of maxOps, maxRooms, maxPathCost, anyOfDestinations, or allOfDestinations must be set'\n );\n }\n\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_dijkstra_multiroom_distance_map(\n startPacked,\n (room: number) => costMatrixCallback(fromPackedRoomName(room)),\n maxOps,\n maxRooms,\n maxPathCost,\n anyOfDestinations\n ? new Uint32Array(\n anyOfDestinations.reduce((acc, { pos, range }) => {\n acc.push(pos.__packedPos, range);\n return acc;\n }, [] as number[])\n )\n : undefined,\n allOfDestinations\n ? new Uint32Array(\n allOfDestinations.reduce((acc, { pos, range }) => {\n acc.push(pos.__packedPos, range);\n return acc;\n }, [] as number[])\n )\n : undefined\n );\n\n return fromPackedSearchResult(result);\n}\n","import { get_range } from '../wasm/screeps_clockwork';\n\n/**\n * Get the global range between two positions. This is different\n * from the `getRange` method on `RoomPosition`, which gets the\n * range only within the same room.\n *\n * @param pos1 - The first position.\n * @param pos2 - The second position.\n * @returns The range between the two positions.\n */\nexport function getRange(pos1: RoomPosition, pos2: RoomPosition) {\n return get_range(pos1.__packedPos, pos2.__packedPos);\n}\n","import { packRoomName } from '../utils/fromPacked';\nimport { ClockworkCostMatrix, get_terrain_cost_matrix } from '../wasm/screeps_clockwork';\n\nexport function getTerrainCostMatrix(\n roomName: string,\n { plainCost, swampCost, wallCost }: { plainCost?: number; swampCost?: number; wallCost?: number } = {}\n): ClockworkCostMatrix {\n return get_terrain_cost_matrix(packRoomName(roomName), plainCost, swampCost, wallCost);\n}\n","/// <reference types=\"../types.d.ts\" />\nimport 'fastestsmallesttextencoderdecoder-encodeinto/EncoderDecoderTogether.min.js';\n\nimport {\n type InitOutput,\n ClockworkCostMatrix,\n DirectionOrder,\n DistanceMap,\n FlowField,\n MonoFlowField,\n initSync,\n version\n} from './wasm/screeps_clockwork';\nexport { ClockworkCostMatrix, DirectionOrder, DistanceMap, FlowField, MonoFlowField };\n\nexport * from './utils/cleanup';\nexport * from './wrappers/astarDistanceMap';\nexport * from './wrappers/bfsDistanceMap';\nexport * from './wrappers/dijkstraDistanceMap';\nexport * from './wrappers/flowField';\nexport * from './wrappers/getRange';\nexport * from './wrappers/getTerrainCostMatrix';\nexport * from './wrappers/monoFlowField';\nexport * from './wrappers/multiroomFlowField';\nexport * from './wrappers/multiroomMonoFlowField';\nexport * from './wrappers/path';\n\ndeclare namespace WebAssembly {\n class Module {\n constructor(bytes: Uint8Array);\n }\n}\n\nlet wasm_bytes: Uint8Array;\nlet wasm_module: WebAssembly.Module;\nlet wasm_instance: InitOutput;\nlet initialized = false;\n/**\n * The `initialize` function should be called in your main loop before\n * using any other screeps-clockwork functions. Depending on available\n * CPU, it may not load the WASM module completely in the first tick,\n * but it will pick back up where it left off if the script times out.\n *\n * @param verbose - If true, will log the state of the WASM module as it loads.\n */\nexport function initialize(verbose = false) {\n // need to freshly override the fake console object each tick\n console.error = console_error;\n const start = Game.cpu.getUsed();\n if (!wasm_bytes) wasm_bytes = require('screeps_clockwork.wasm');\n if (verbose && !initialized) console.logUnsafe('[clockwork] wasm_bytes loaded');\n if (!wasm_module) wasm_module = new WebAssembly.Module(wasm_bytes);\n if (verbose && !initialized) console.logUnsafe('[clockwork] wasm_module loaded');\n if (!wasm_instance) wasm_instance = initSync({ module: wasm_module });\n if (verbose && !initialized) {\n console.logUnsafe('[clockwork] wasm_instance loaded');\n console.logUnsafe(\n `[clockwork] version ${version()} initialized with ${(Game.cpu.getUsed() - start).toFixed(2)} CPU`\n );\n }\n initialized = true;\n}\n\n// This provides the function `console.error` that wasm_bindgen sometimes expects to exist,\n// especially with type checks in debug mode. An alternative is to have this be `function () {}`\n// and let the exception handler log the thrown JS exceptions, but there is some additional\n// information that wasm_bindgen only passes here.\n//\n// There is nothing special about this function and it may also be used by any JS/Rust code as a convenience.\nfunction console_error() {\n const processedArgs = Array.from(arguments)\n .map(arg => {\n if (arg instanceof Error) {\n // On this version of Node, the `stack` property of errors contains\n // the message as well.\n return arg.stack;\n } else {\n return arg;\n }\n })\n .join(' ');\n console.logUnsafe('ERROR:', processedArgs);\n}\n"],"names":["global","this"],"mappings":";;;;;;;;;;;;;AAAa,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;CAC1f,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;CACxf,IAAI,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,SAAS,CAAC,mHAAmH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AACnf,CAAA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtf,CAAA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GA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"}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/fastestsmallesttextencoderdecoder-encodeinto/EncoderDecoderTogether.min.js","../../src/wasm/snippets/screeps-clockwork-1f762889e2725adb/inline0.js","../../src/wasm/screeps_clockwork.js","../../src/utils/constants.ts","../../src/utils/fromPacked.ts","../../src/wrappers/distanceMap.ts","../../src/wrappers/flowField.ts","../../src/wrappers/path.ts","../../src/wrappers/multiroomFlowField.ts","../../src/wrappers/monoFlowField.ts","../../src/wrappers/multiroomMonoFlowField.ts","../../src/wrappers/multiroomDistanceMap.ts","../../src/wrappers/searchResult.ts","../../src/wrappers/astarDistanceMap.ts","../../src/wrappers/bfsDistanceMap.ts","../../src/wrappers/dijkstraDistanceMap.ts","../../src/wrappers/getRange.ts","../../src/wrappers/getTerrainCostMatrix.ts","../../src/index.ts"],"sourcesContent":["'use strict';(function(q){function y(){}function C(b){var c=b.charCodeAt(0)|0;if(55296<=c)if(56319>=c)if(b=b.charCodeAt(1)|0,56320<=b&&57343>=b){if(c=(c<<10)+b-56613888|0,65535<c)return v(240|c>>18,128|c>>12&63,128|c>>6&63,128|c&63)}else c=65533;else 57343>=c&&(c=65533);return 2047>=c?v(192|c>>6,128|c&63):v(224|c>>12,128|c>>6&63,128|c&63)}function z(){}function A(b,c){var g=void 0===b?\"\":(\"\"+b).replace(D,C),d=g.length|0,a=0,k=0,f=c.length|0,h=b.length|0;f<d&&(d=f);a:for(;a<d;a=a+1|0){b=g.charCodeAt(a)|\n0;switch(b>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:k=k+1|0;case 8:case 9:case 10:case 11:break;case 12:case 13:if((a+1|0)<f){k=k+1|0;break}case 14:if((a+2|0)<f){k=k+1|0;break}case 15:if((a+3|0)<f){k=k+1|0;break}default:break a}c[a]=b}return{written:a,read:h<k?h:k}}var v=String.fromCharCode,x={}.toString,E=x.call(q.SharedArrayBuffer),F=x(),t=q.Uint8Array,w=t||Array,u=t?ArrayBuffer:w,G=u.isView||function(b){return b&&\"length\"in b},H=x.call(u.prototype),B=z.prototype;u=q.TextEncoder;\nvar D=/[\\x80-\\uD7ff\\uDC00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]?/g,e=new (t?Uint16Array:w)(32);y.prototype.decode=function(b){if(!G(b)){var c=x.call(b);if(c!==H&&c!==E&&c!==F)throw TypeError(\"Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'\");b=t?new w(b):b||[]}for(var g=c=\"\",d=0,a=b.length|0,k=a-32|0,f,h,l=0,r=0,n,m=0,p=-1;d<a;){for(f=d<=k?32:a-d|0;m<f;d=d+1|0,m=m+1|0){h=b[d]&255;switch(h>>4){case 15:n=b[d=d+1|0]&255;if(2!==n>>6||\n247<h){d=d-1|0;break}l=(h&7)<<6|n&63;r=5;h=256;case 14:n=b[d=d+1|0]&255,l<<=6,l|=(h&15)<<6|n&63,r=2===n>>6?r+4|0:24,h=h+256&768;case 13:case 12:n=b[d=d+1|0]&255,l<<=6,l|=(h&31)<<6|n&63,r=r+7|0,d<a&&2===n>>6&&l>>r&&1114112>l?(h=l,l=l-65536|0,0<=l&&(p=(l>>10)+55296|0,h=(l&1023)+56320|0,31>m?(e[m]=p,m=m+1|0,p=-1):(n=p,p=h,h=n))):(h>>=8,d=d-h-1|0,h=65533),l=r=0,f=d<=k?32:a-d|0;default:e[m]=h;continue;case 11:case 10:case 9:case 8:}e[m]=65533}g+=v(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],\ne[11],e[12],e[13],e[14],e[15],e[16],e[17],e[18],e[19],e[20],e[21],e[22],e[23],e[24],e[25],e[26],e[27],e[28],e[29],e[30],e[31]);32>m&&(g=g.slice(0,m-32|0));if(d<a){if(e[0]=p,m=~p>>>31,p=-1,g.length<c.length)continue}else-1!==p&&(g+=v(p));c+=g;g=\"\"}return c};B.encode=function(b){b=void 0===b?\"\":\"\"+b;var c=b.length|0,g=new w((c<<1)+8|0),d,a=0,k=!t;for(d=0;d<c;d=d+1|0,a=a+1|0){var f=b.charCodeAt(d)|0;if(127>=f)g[a]=f;else{if(2047>=f)g[a]=192|f>>6;else{a:{if(55296<=f)if(56319>=f){var h=b.charCodeAt(d=\nd+1|0)|0;if(56320<=h&&57343>=h){f=(f<<10)+h-56613888|0;if(65535<f){g[a]=240|f>>18;g[a=a+1|0]=128|f>>12&63;g[a=a+1|0]=128|f>>6&63;g[a=a+1|0]=128|f&63;continue}break a}f=65533}else 57343>=f&&(f=65533);!k&&d<<1<a&&d<<1<(a-7|0)&&(k=!0,h=new w(3*c),h.set(g),g=h)}g[a]=224|f>>12;g[a=a+1|0]=128|f>>6&63}g[a=a+1|0]=128|f&63}}return t?g.subarray(0,a):g.slice(0,a)};B.encodeInto=A;if(!u)q.TextDecoder=y,q.TextEncoder=z;else if(!(q=u.prototype).encodeInto){var I=new u;q.encodeInto=function(b,c){var g=b.length|0,\nd=c.length|0;if(g<d>>1){var a=I.encode(b);if((a.length|0)<d)return c.set(a),{read:g,written:a.length|0}}return A(b,c)}}})(\"undefined\"==typeof global?\"undefined\"==typeof self?this:self:global);//AnonyCo\n//# sourceMappingURL=https://cdn.jsdelivr.net/gh/AnonyCo/FastestSmallestTextEncoderDecoder/encodeInto/EncoderDecoderTogether.min.js.map\n","\n export function clockworkcostmatrix_get_pointer(value) {\n if (!value || \n typeof value !== 'object' || \n !('__wbg_ptr' in value) ||\n value.constructor.name !== 'ClockworkCostMatrix') {\n return 0;\n }\n return value.__wbg_ptr;\n }\n","/* @ts-self-types=\"./screeps_clockwork.d.ts\" */\nimport { clockworkcostmatrix_get_pointer } from './snippets/screeps-clockwork-1f762889e2725adb/inline0.js';\n\n\n/**\n * A wrapper around the `LocalCostMatrix` type from the Screeps API.\n * Instances can be passed between WASM and JS as a pointer, using the\n * methods to get and set values, rather than copying the entire matrix.\n */\nexport class ClockworkCostMatrix {\n static __wrap(ptr) {\n const obj = Object.create(ClockworkCostMatrix.prototype);\n obj.__wbg_ptr = ptr;\n ClockworkCostMatrixFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ClockworkCostMatrixFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_clockworkcostmatrix_free(ptr, 0);\n }\n /**\n * Gets the cost of a given position in the cost matrix.\n * @param {number} x\n * @param {number} y\n * @returns {number}\n */\n get(x, y) {\n const ret = wasm.clockworkcostmatrix_get(this.__wbg_ptr, x, y);\n return ret;\n }\n /**\n * Creates a new cost matrix within the WASM module. Optionally, a default value\n * can be provided to initialize all cells in the matrix to that value.\n * @param {number | null} [_default]\n */\n constructor(_default) {\n const ret = wasm.clockworkcostmatrix_new(isLikeNone(_default) ? 0xFFFFFF : _default);\n this.__wbg_ptr = ret;\n ClockworkCostMatrixFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Sets the cost of a given position in the cost matrix.\n * @param {number} x\n * @param {number} y\n * @param {number} value\n */\n set(x, y, value) {\n wasm.clockworkcostmatrix_set(this.__wbg_ptr, x, y, value);\n }\n}\nif (Symbol.dispose) ClockworkCostMatrix.prototype[Symbol.dispose] = ClockworkCostMatrix.prototype.free;\n\n/**\n * Translates `COLOR_*` and `COLORS_ALL` constants.\n * @enum {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10}\n */\nexport const Color = Object.freeze({\n Red: 1, \"1\": \"Red\",\n Purple: 2, \"2\": \"Purple\",\n Blue: 3, \"3\": \"Blue\",\n Cyan: 4, \"4\": \"Cyan\",\n Green: 5, \"5\": \"Green\",\n Yellow: 6, \"6\": \"Yellow\",\n Orange: 7, \"7\": \"Orange\",\n Brown: 8, \"8\": \"Brown\",\n Grey: 9, \"9\": \"Grey\",\n White: 10, \"10\": \"White\",\n});\n\n/**\n * Translates the `DENSITY_*` constants.\n * @enum {1 | 2 | 3 | 4}\n */\nexport const Density = Object.freeze({\n Low: 1, \"1\": \"Low\",\n Moderate: 2, \"2\": \"Moderate\",\n High: 3, \"3\": \"High\",\n Ultra: 4, \"4\": \"Ultra\",\n});\n\n/**\n * Translates direction constants.\n * @enum {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8}\n */\nexport const Direction = Object.freeze({\n Top: 1, \"1\": \"Top\",\n TopRight: 2, \"2\": \"TopRight\",\n Right: 3, \"3\": \"Right\",\n BottomRight: 4, \"4\": \"BottomRight\",\n Bottom: 5, \"5\": \"Bottom\",\n BottomLeft: 6, \"6\": \"BottomLeft\",\n Left: 7, \"7\": \"Left\",\n TopLeft: 8, \"8\": \"TopLeft\",\n});\n\n/**\n * @enum {0 | 1}\n */\nexport const DirectionOrder = Object.freeze({\n CardinalFirst: 0, \"0\": \"CardinalFirst\",\n DiagonalFirst: 1, \"1\": \"DiagonalFirst\",\n});\n\n/**\n * Maps a distance value onto individual room tile positions.\n */\nexport class DistanceMap {\n static __wrap(ptr) {\n const obj = Object.create(DistanceMap.prototype);\n obj.__wbg_ptr = ptr;\n DistanceMapFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DistanceMapFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_distancemap_free(ptr, 0);\n }\n /**\n * Gets the distance value at a given position.\n * @param {number} x\n * @param {number} y\n * @returns {number}\n */\n get(x, y) {\n const ret = wasm.distancemap_get(this.__wbg_ptr, x, y);\n return ret >>> 0;\n }\n /**\n * Sets the distance value at a given position.\n * @param {number} x\n * @param {number} y\n * @param {number} value\n */\n set(x, y, value) {\n wasm.distancemap_set(this.__wbg_ptr, x, y, value);\n }\n /**\n * Converts the distance map into a flat array of distances.\n * @returns {Uint32Array}\n */\n toArray() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.distancemap_toArray(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n}\nif (Symbol.dispose) DistanceMap.prototype[Symbol.dispose] = DistanceMap.prototype.free;\n\n/**\n * Type used for when the game returns a direction to an exit.\n *\n * Restricted more than `Direction` in that it can't be diagonal. Used as the\n * result of [`Room::find_exit_to`].\n *\n * Can be converted to [`Find`] for immediate use of [`Room::find`]\n * and [`Direction`].\n *\n * [`Room::find`]: crate::objects::Room::find\n * [`Room::find_exit_to`]: crate::objects::Room::find_exit_to\n * @enum {1 | 3 | 5 | 7}\n */\nexport const ExitDirection = Object.freeze({\n Top: 1, \"1\": \"Top\",\n Right: 3, \"3\": \"Right\",\n Bottom: 5, \"5\": \"Bottom\",\n Left: 7, \"7\": \"Left\",\n});\n\n/**\n * Translates `FIND_*` constants for interal API calls\n *\n * Unless you're storing the type of find constant to be used for a call, you\n * likely want the constants which implement the `FindConstant` trait to make\n * calls to find methods.\n *\n * This is hidden from the documentation to avoid confusion due to its narrow\n * use case, but wasm_bindgen requires it remain public.\n * @enum {1 | 3 | 5 | 7 | 10 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 10011 | 10012 | 10021 | 10022 | 10051}\n */\nexport const Find = Object.freeze({\n /**\n * Find all exit positions at the top of the room\n */\n ExitTop: 1, \"1\": \"ExitTop\",\n ExitRight: 3, \"3\": \"ExitRight\",\n ExitBottom: 5, \"5\": \"ExitBottom\",\n ExitLeft: 7, \"7\": \"ExitLeft\",\n Exit: 10, \"10\": \"Exit\",\n Creeps: 101, \"101\": \"Creeps\",\n MyCreeps: 102, \"102\": \"MyCreeps\",\n HostileCreeps: 103, \"103\": \"HostileCreeps\",\n SourcesActive: 104, \"104\": \"SourcesActive\",\n Sources: 105, \"105\": \"Sources\",\n DroppedResources: 106, \"106\": \"DroppedResources\",\n Structures: 107, \"107\": \"Structures\",\n MyStructures: 108, \"108\": \"MyStructures\",\n HostileStructures: 109, \"109\": \"HostileStructures\",\n Flags: 110, \"110\": \"Flags\",\n ConstructionSites: 111, \"111\": \"ConstructionSites\",\n MySpawns: 112, \"112\": \"MySpawns\",\n HostileSpawns: 113, \"113\": \"HostileSpawns\",\n MyConstructionSites: 114, \"114\": \"MyConstructionSites\",\n HostileConstructionSites: 115, \"115\": \"HostileConstructionSites\",\n Minerals: 116, \"116\": \"Minerals\",\n Nukes: 117, \"117\": \"Nukes\",\n Tombstones: 118, \"118\": \"Tombstones\",\n PowerCreeps: 119, \"119\": \"PowerCreeps\",\n MyPowerCreeps: 120, \"120\": \"MyPowerCreeps\",\n HostilePowerCreeps: 121, \"121\": \"HostilePowerCreeps\",\n Deposits: 122, \"122\": \"Deposits\",\n Ruins: 123, \"123\": \"Ruins\",\n ScoreContainers: 10011, \"10011\": \"ScoreContainers\",\n ScoreCollectors: 10012, \"10012\": \"ScoreCollectors\",\n SymbolContainers: 10021, \"10021\": \"SymbolContainers\",\n SymbolDecoders: 10022, \"10022\": \"SymbolDecoders\",\n Reactors: 10051, \"10051\": \"Reactors\",\n});\n\n/**\n * A flow field is a 50x50 grid (representing a room), representing viable directions\n * to travel to reach a particular target (or targets). A given tile may have multiple\n * equally valid directions, so we represent this as a bitfield (where each bit in an\n * 8-bit unsigned integer represents a direction that is either viable or not).\n */\nexport class FlowField {\n static __wrap(ptr) {\n const obj = Object.create(FlowField.prototype);\n obj.__wbg_ptr = ptr;\n FlowFieldFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n FlowFieldFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_flowfield_free(ptr, 0);\n }\n /**\n * Add a direction to the list of valid directions for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {Direction} direction\n */\n addDirection(x, y, direction) {\n wasm.flowfield_addDirection(this.__wbg_ptr, x, y, direction);\n }\n /**\n * Get the internal value for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @returns {number}\n */\n get(x, y) {\n const ret = wasm.flowfield_get(this.__wbg_ptr, x, y);\n return ret;\n }\n /**\n * Get the list of valid directions for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @returns {any[]}\n */\n getDirections(x, y) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.flowfield_getDirections(retptr, this.__wbg_ptr, x, y);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayJsValueFromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Set the internal value for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {number} value\n */\n set(x, y, value) {\n wasm.flowfield_set(this.__wbg_ptr, x, y, value);\n }\n /**\n * Set the list of valid directions for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {any[]} directions\n */\n setDirections(x, y, directions) {\n const ptr0 = passArrayJsValueToWasm0(directions, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.flowfield_setDirections(this.__wbg_ptr, x, y, ptr0, len0);\n }\n}\nif (Symbol.dispose) FlowField.prototype[Symbol.dispose] = FlowField.prototype.free;\n\n/**\n * A flow field is a 50x50 grid (representing a room), representing viable directions\n * to travel to reach a particular target (or targets). A mono flow field only stores\n * a single direction for each tile, so we represent this as 4 bits of an unsigned\n * integer (0 for no direction, 1 for TOP, etc.).\n */\nexport class MonoFlowField {\n static __wrap(ptr) {\n const obj = Object.create(MonoFlowField.prototype);\n obj.__wbg_ptr = ptr;\n MonoFlowFieldFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MonoFlowFieldFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_monoflowfield_free(ptr, 0);\n }\n /**\n * Get the direction for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @returns {Direction | undefined}\n */\n get(x, y) {\n const ret = wasm.monoflowfield_get(this.__wbg_ptr, x, y);\n return ret === 0 ? undefined : ret;\n }\n /**\n * Set the direction for a given coordinate.\n * @param {number} x\n * @param {number} y\n * @param {Direction | null} [value]\n */\n set(x, y, value) {\n wasm.monoflowfield_set(this.__wbg_ptr, x, y, isLikeNone(value) ? 0 : value);\n }\n}\nif (Symbol.dispose) MonoFlowField.prototype[Symbol.dispose] = MonoFlowField.prototype.free;\n\n/**\n * Maps distance values across multiple rooms, storing a DistanceMap for each room\n */\nexport class MultiroomDistanceMap {\n static __wrap(ptr) {\n const obj = Object.create(MultiroomDistanceMap.prototype);\n obj.__wbg_ptr = ptr;\n MultiroomDistanceMapFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MultiroomDistanceMapFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_multiroomdistancemap_free(ptr, 0);\n }\n /**\n * Gets the distance value at a given position\n * @param {number} packed_pos\n * @returns {number}\n */\n get(packed_pos) {\n const ret = wasm.multiroomdistancemap_get(this.__wbg_ptr, packed_pos);\n return ret >>> 0;\n }\n /**\n * Gets the DistanceMap for a given room\n * @param {number} room_name\n * @returns {DistanceMap | undefined}\n */\n get_room(room_name) {\n const ret = wasm.multiroomdistancemap_get_room(this.__wbg_ptr, room_name);\n return ret === 0 ? undefined : DistanceMap.__wrap(ret);\n }\n /**\n * Gets the list of rooms in the map\n * @returns {Uint16Array}\n */\n get_rooms() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.multiroomdistancemap_get_rooms(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU16FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 2, 2);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Creates a new empty multiroom distance map (JavaScript constructor)\n */\n constructor() {\n const ret = wasm.multiroomdistancemap_js_new();\n this.__wbg_ptr = ret;\n MultiroomDistanceMapFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Sets the distance value at a given position\n * @param {number} packed_pos\n * @param {number} value\n */\n set(packed_pos, value) {\n wasm.multiroomdistancemap_set(this.__wbg_ptr, packed_pos, value);\n }\n}\nif (Symbol.dispose) MultiroomDistanceMap.prototype[Symbol.dispose] = MultiroomDistanceMap.prototype.free;\n\n/**\n * Maps flow field values across multiple rooms, storing a FlowField for each room\n */\nexport class MultiroomFlowField {\n static __wrap(ptr) {\n const obj = Object.create(MultiroomFlowField.prototype);\n obj.__wbg_ptr = ptr;\n MultiroomFlowFieldFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MultiroomFlowFieldFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_multiroomflowfield_free(ptr, 0);\n }\n /**\n * Adds a direction to the list of valid directions at a given position (JavaScript)\n * @param {number} packed_pos\n * @param {Direction} direction\n */\n addDirection(packed_pos, direction) {\n wasm.multiroomflowfield_addDirection(this.__wbg_ptr, packed_pos, direction);\n }\n /**\n * Gets the flow field value at a given position\n * @param {number} packed_pos\n * @returns {number}\n */\n get(packed_pos) {\n const ret = wasm.multiroomflowfield_get(this.__wbg_ptr, packed_pos);\n return ret;\n }\n /**\n * Gets the list of valid directions at a given position (JavaScript)\n * @param {number} packed_pos\n * @returns {any[]}\n */\n getDirections(packed_pos) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.multiroomflowfield_getDirections(retptr, this.__wbg_ptr, packed_pos);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayJsValueFromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Gets the FlowField for a given room\n * @param {number} room_name\n * @returns {FlowField | undefined}\n */\n getRoom(room_name) {\n const ret = wasm.multiroomflowfield_getRoom(this.__wbg_ptr, room_name);\n return ret === 0 ? undefined : FlowField.__wrap(ret);\n }\n /**\n * Gets the list of rooms in the flow field\n * @returns {Uint16Array}\n */\n getRooms() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.multiroomflowfield_getRooms(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU16FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 2, 2);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Creates a new empty multiroom flow field (JavaScript constructor)\n */\n constructor() {\n const ret = wasm.multiroomflowfield_js_new();\n this.__wbg_ptr = ret;\n MultiroomFlowFieldFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Sets the flow field value at a given position\n * @param {number} packed_pos\n * @param {number} value\n */\n set(packed_pos, value) {\n wasm.multiroomflowfield_set(this.__wbg_ptr, packed_pos, value);\n }\n /**\n * Sets the list of valid directions at a given position (JavaScript)\n * @param {number} packed_pos\n * @param {any[]} directions\n */\n setDirections(packed_pos, directions) {\n const ptr0 = passArrayJsValueToWasm0(directions, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.multiroomflowfield_setDirections(this.__wbg_ptr, packed_pos, ptr0, len0);\n }\n}\nif (Symbol.dispose) MultiroomFlowField.prototype[Symbol.dispose] = MultiroomFlowField.prototype.free;\n\n/**\n * Maps monodirectional flow field values across multiple rooms, storing a MonoFlowField for each room\n */\nexport class MultiroomMonoFlowField {\n static __wrap(ptr) {\n const obj = Object.create(MultiroomMonoFlowField.prototype);\n obj.__wbg_ptr = ptr;\n MultiroomMonoFlowFieldFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MultiroomMonoFlowFieldFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_multiroommonoflowfield_free(ptr, 0);\n }\n /**\n * Gets the direction at a given position\n * @param {number} packed_pos\n * @returns {Direction | undefined}\n */\n get(packed_pos) {\n const ret = wasm.multiroommonoflowfield_get(this.__wbg_ptr, packed_pos);\n return ret === 0 ? undefined : ret;\n }\n /**\n * Gets the MonoFlowField for a given room\n * @param {number} room_name\n * @returns {MonoFlowField | undefined}\n */\n getRoom(room_name) {\n const ret = wasm.multiroommonoflowfield_getRoom(this.__wbg_ptr, room_name);\n return ret === 0 ? undefined : MonoFlowField.__wrap(ret);\n }\n /**\n * Gets the list of rooms in the flow field\n * @returns {Uint16Array}\n */\n getRooms() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.multiroommonoflowfield_getRooms(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU16FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 2, 2);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * Creates a new empty multiroom monodirectional flow field (JavaScript constructor)\n */\n constructor() {\n const ret = wasm.multiroommonoflowfield_js_new();\n this.__wbg_ptr = ret;\n MultiroomMonoFlowFieldFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Sets the direction at a given position\n * @param {number} packed_pos\n * @param {Direction | null} [direction]\n */\n set(packed_pos, direction) {\n wasm.multiroommonoflowfield_set(this.__wbg_ptr, packed_pos, isLikeNone(direction) ? 0 : direction);\n }\n}\nif (Symbol.dispose) MultiroomMonoFlowField.prototype[Symbol.dispose] = MultiroomMonoFlowField.prototype.free;\n\n/**\n * Translates the `EFFECT_*` constants, which are natural effect types\n * @enum {1001 | 1002}\n */\nexport const NaturalEffectType = Object.freeze({\n Invulnerability: 1001, \"1001\": \"Invulnerability\",\n CollapseTimer: 1002, \"1002\": \"CollapseTimer\",\n});\n\n/**\n * A list of positions representing a path.\n */\nexport class Path {\n static __wrap(ptr) {\n const obj = Object.create(Path.prototype);\n obj.__wbg_ptr = ptr;\n PathFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PathFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_path_free(ptr, 0);\n }\n /**\n * @param {number} packed_position\n */\n add(packed_position) {\n wasm.path_add(this.__wbg_ptr, packed_position);\n }\n /**\n * Given a position, find the index of the next adjacent position\n * in the path. If the position is not in the path, the target is\n * the next adjacent position closest to the end of the path. If\n * the position is neither on nor adjacent to the path, return None.\n * @param {number} packed_position\n * @returns {number | undefined}\n */\n find_next_index(packed_position) {\n const ret = wasm.path_find_next_index(this.__wbg_ptr, packed_position);\n return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;\n }\n /**\n * @param {number} index\n * @returns {number | undefined}\n */\n get(index) {\n const ret = wasm.path_get(this.__wbg_ptr, index);\n return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.path_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {Uint32Array}\n */\n to_array() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.path_to_array(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @returns {Uint32Array}\n */\n to_array_reversed() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.path_to_array_reversed(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n}\nif (Symbol.dispose) Path.prototype[Symbol.dispose] = Path.prototype.free;\n\n/**\n * Tracks fatigue cost for each position in a path. Used to calculate move time\n * for a given creep build.\n */\nexport class PathFatigue {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PathFatigueFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_pathfatigue_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n len() {\n const ret = wasm.pathfatigue_len(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * Calculates the total move time for the path, given a fatigue ratio.\n *\n * For unboosted creeps, the ratio is `Math.floor(moveParts * 2 / fatigueParts)`\n * where `fatigue_parts` are any part except MOVE and empty CARRY parts.\n * @param {number} fatigue_ratio\n * @returns {number}\n */\n moveTime(fatigue_ratio) {\n const ret = wasm.pathfatigue_moveTime(this.__wbg_ptr, fatigue_ratio);\n return ret >>> 0;\n }\n /**\n * @param {Path} path\n */\n constructor(path) {\n _assertClass(path, Path);\n const ret = wasm.pathfatigue_new(path.__wbg_ptr);\n this.__wbg_ptr = ret;\n PathFatigueFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Refreshes fatigue cost for each position in the path. If the PathFatigue\n * has not been initialized yet, every position's fatigue cost will be set,\n * even if there is no vision in the room, based on terrain costs. If the\n * list *has* been initialized, only positions with vision will be updated.\n *\n * When there is vision, this also accounts for roads at the position.\n * @param {Path} path\n */\n refresh(path) {\n _assertClass(path, Path);\n wasm.pathfatigue_refresh(this.__wbg_ptr, path.__wbg_ptr);\n }\n}\nif (Symbol.dispose) PathFatigue.prototype[Symbol.dispose] = PathFatigue.prototype.free;\n\n/**\n * Translates the `PWR_*` constants, which are types of powers used by power\n * creeps\n * @enum {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19}\n */\nexport const PowerType = Object.freeze({\n GenerateOps: 1, \"1\": \"GenerateOps\",\n OperateSpawn: 2, \"2\": \"OperateSpawn\",\n OperateTower: 3, \"3\": \"OperateTower\",\n OperateStorage: 4, \"4\": \"OperateStorage\",\n OperateLab: 5, \"5\": \"OperateLab\",\n OperateExtension: 6, \"6\": \"OperateExtension\",\n OperateObserver: 7, \"7\": \"OperateObserver\",\n OperateTerminal: 8, \"8\": \"OperateTerminal\",\n DisruptSpawn: 9, \"9\": \"DisruptSpawn\",\n DisruptTower: 10, \"10\": \"DisruptTower\",\n Shield: 12, \"12\": \"Shield\",\n RegenSource: 13, \"13\": \"RegenSource\",\n RegenMineral: 14, \"14\": \"RegenMineral\",\n DisruptTerminal: 15, \"15\": \"DisruptTerminal\",\n OperatePower: 16, \"16\": \"OperatePower\",\n Fortify: 17, \"17\": \"Fortify\",\n OperateController: 18, \"18\": \"OperateController\",\n OperateFactory: 19, \"19\": \"OperateFactory\",\n});\n\nexport class SearchGoal {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n SearchGoalFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_searchgoal_free(ptr, 0);\n }\n /**\n * @returns {any}\n */\n get pos() {\n const ret = wasm.searchgoal_pos(this.__wbg_ptr);\n return takeObject(ret);\n }\n /**\n * @returns {number}\n */\n get range() {\n const ret = wasm.searchgoal_range(this.__wbg_ptr);\n return ret >>> 0;\n }\n}\nif (Symbol.dispose) SearchGoal.prototype[Symbol.dispose] = SearchGoal.prototype.free;\n\n/**\n * A distance map search returns both the distance map (filled out\n * with all tiles explored) and the targets found. These aren't necessarily\n * the same positions specified as targets - if the target range is 5, then\n * this is the first position in range 5 of the target. If multiple targets\n * are specified, and you care about matching the found target with one of\n * the original targets, you can iterate through your list and figure out the\n * ones that are in range of the found target(s).\n */\nexport class SearchResult {\n static __wrap(ptr) {\n const obj = Object.create(SearchResult.prototype);\n obj.__wbg_ptr = ptr;\n SearchResultFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n SearchResultFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_searchresult_free(ptr, 0);\n }\n /**\n * @returns {MultiroomDistanceMap}\n */\n get distance_map() {\n const ret = wasm.searchresult_distance_map(this.__wbg_ptr);\n return MultiroomDistanceMap.__wrap(ret);\n }\n /**\n * @returns {Uint32Array}\n */\n get found_targets() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.searchresult_found_targets(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var v1 = getArrayU32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4, 4);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @returns {number}\n */\n get ops() {\n const ret = wasm.searchresult_ops(this.__wbg_ptr);\n return ret >>> 0;\n }\n}\nif (Symbol.dispose) SearchResult.prototype[Symbol.dispose] = SearchResult.prototype.free;\n\n/**\n * Translates `TERRAIN_*` constants.\n * @enum {0 | 1 | 2}\n */\nexport const Terrain = Object.freeze({\n Plain: 0, \"0\": \"Plain\",\n Wall: 1, \"1\": \"Wall\",\n Swamp: 2, \"2\": \"Swamp\",\n});\n\n/**\n * Exports the global range calculation between two positions.\n * @param {number} packed_pos_1\n * @param {number} packed_pos_2\n * @returns {number}\n */\nexport function get_range(packed_pos_1, packed_pos_2) {\n const ret = wasm.get_range(packed_pos_1, packed_pos_2);\n return ret >>> 0;\n}\n\n/**\n * @param {number} room_name\n * @param {number | null} [plain_cost]\n * @param {number | null} [swamp_cost]\n * @param {number | null} [wall_cost]\n * @returns {ClockworkCostMatrix}\n */\nexport function get_terrain_cost_matrix(room_name, plain_cost, swamp_cost, wall_cost) {\n const ret = wasm.get_terrain_cost_matrix(room_name, isLikeNone(plain_cost) ? 0xFFFFFF : plain_cost, isLikeNone(swamp_cost) ? 0xFFFFFF : swamp_cost, isLikeNone(wall_cost) ? 0xFFFFFF : wall_cost);\n return ClockworkCostMatrix.__wrap(ret);\n}\n\n/**\n * @param {Uint32Array} start_packed\n * @param {Function} get_cost_matrix\n * @param {number} max_rooms\n * @param {number} max_ops\n * @param {number} max_path_cost\n * @param {Uint32Array | null} [any_of_destinations]\n * @param {Uint32Array | null} [all_of_destinations]\n * @returns {SearchResult}\n */\nexport function js_astar_multiroom_distance_map(start_packed, get_cost_matrix, max_rooms, max_ops, max_path_cost, any_of_destinations, all_of_destinations) {\n try {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(any_of_destinations) ? 0 : passArray32ToWasm0(any_of_destinations, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = isLikeNone(all_of_destinations) ? 0 : passArray32ToWasm0(all_of_destinations, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n const ret = wasm.js_astar_multiroom_distance_map(ptr0, len0, addBorrowedObject(get_cost_matrix), max_rooms, max_ops, max_path_cost, ptr1, len1, ptr2, len2);\n return SearchResult.__wrap(ret);\n } finally {\n heap[stack_pointer++] = undefined;\n }\n}\n\n/**\n * WASM wrapper for the BFS multiroom distance map function.\n *\n * # Arguments\n * * `start_packed` - Array of packed position integers representing start positions\n * * `get_cost_matrix` - JavaScript function that returns cost matrices for rooms\n * * `max_ops` - Maximum number of tiles to explore\n * * `max_rooms` - Maximum number of rooms to explore\n * * `max_room_distance` - Maximum Manhattan distance in rooms to explore\n * * `max_path_cost` - Maximum distance in tiles to explore\n * * `any_of_destinations` - Array of packed positions to trigger early exit when any are reached\n * * `all_of_destinations` - Array of packed positions to trigger early exit when all are reached\n *\n * # Returns\n * A `MultiroomDistanceMap` containing the distances from the start positions\n * @param {Uint32Array} start_packed\n * @param {Function} get_cost_matrix\n * @param {number} max_ops\n * @param {number} max_rooms\n * @param {number} max_path_cost\n * @param {Uint32Array | null} [any_of_destinations]\n * @param {Uint32Array | null} [all_of_destinations]\n * @returns {SearchResult}\n */\nexport function js_bfs_multiroom_distance_map(start_packed, get_cost_matrix, max_ops, max_rooms, max_path_cost, any_of_destinations, all_of_destinations) {\n try {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(any_of_destinations) ? 0 : passArray32ToWasm0(any_of_destinations, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = isLikeNone(all_of_destinations) ? 0 : passArray32ToWasm0(all_of_destinations, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n const ret = wasm.js_bfs_multiroom_distance_map(ptr0, len0, addBorrowedObject(get_cost_matrix), max_ops, max_rooms, max_path_cost, ptr1, len1, ptr2, len2);\n return SearchResult.__wrap(ret);\n } finally {\n heap[stack_pointer++] = undefined;\n }\n}\n\n/**\n * @param {Uint32Array} start_packed\n * @param {Function} get_cost_matrix\n * @param {number} max_ops\n * @param {number} max_rooms\n * @param {number} max_path_cost\n * @param {Uint32Array | null} [any_of_destinations]\n * @param {Uint32Array | null} [all_of_destinations]\n * @returns {SearchResult}\n */\nexport function js_dijkstra_multiroom_distance_map(start_packed, get_cost_matrix, max_ops, max_rooms, max_path_cost, any_of_destinations, all_of_destinations) {\n try {\n const ptr0 = passArray32ToWasm0(start_packed, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(any_of_destinations) ? 0 : passArray32ToWasm0(any_of_destinations, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = isLikeNone(all_of_destinations) ? 0 : passArray32ToWasm0(all_of_destinations, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n const ret = wasm.js_dijkstra_multiroom_distance_map(ptr0, len0, addBorrowedObject(get_cost_matrix), max_ops, max_rooms, max_path_cost, ptr1, len1, ptr2, len2);\n return SearchResult.__wrap(ret);\n } finally {\n heap[stack_pointer++] = undefined;\n }\n}\n\n/**\n * @param {number} start\n * @param {MultiroomDistanceMap} distance_map\n * @param {DirectionOrder} direction_order\n * @returns {Path}\n */\nexport function js_path_to_multiroom_distance_map_origin(start, distance_map, direction_order) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(distance_map, MultiroomDistanceMap);\n wasm.js_path_to_multiroom_distance_map_origin(retptr, start, distance_map.__wbg_ptr, direction_order);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return Path.__wrap(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {number} start\n * @param {MultiroomFlowField} flow_field\n * @returns {Path}\n */\nexport function js_path_to_multiroom_flow_field_origin(start, flow_field) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(flow_field, MultiroomFlowField);\n wasm.js_path_to_multiroom_flow_field_origin(retptr, start, flow_field.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return Path.__wrap(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * @param {number} start\n * @param {MultiroomMonoFlowField} flow_field\n * @returns {Path}\n */\nexport function js_path_to_multiroom_mono_flow_field_origin(start, flow_field) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(flow_field, MultiroomMonoFlowField);\n wasm.js_path_to_multiroom_mono_flow_field_origin(retptr, start, flow_field.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return Path.__wrap(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n * Creates a flow field for the given distance map.\n * @param {MultiroomDistanceMap} distance_map\n * @param {DirectionOrder} direction_order\n * @returns {MultiroomFlowField}\n */\nexport function multiroomFlowField(distance_map, direction_order) {\n _assertClass(distance_map, MultiroomDistanceMap);\n const ret = wasm.multiroomFlowField(distance_map.__wbg_ptr, direction_order);\n return MultiroomFlowField.__wrap(ret);\n}\n\n/**\n * Creates a monodirectional flow field for the given distance map.\n * @param {MultiroomDistanceMap} distance_map\n * @param {DirectionOrder} direction_order\n * @returns {MultiroomMonoFlowField}\n */\nexport function multiroomMonoFlowField(distance_map, direction_order) {\n _assertClass(distance_map, MultiroomDistanceMap);\n const ret = wasm.multiroomMonoFlowField(distance_map.__wbg_ptr, direction_order);\n return MultiroomMonoFlowField.__wrap(ret);\n}\n\n/**\n * @returns {string}\n */\nexport function version() {\n let deferred1_0;\n let deferred1_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.version(retptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred1_0 = r0;\n deferred1_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n}\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg___wbindgen_is_null_2042690d351e14f0: function(arg0) {\n const ret = getObject(arg0) === null;\n return ret;\n },\n __wbg___wbindgen_is_undefined_35bb9f4c7fd651d5: function(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n },\n __wbg___wbindgen_number_get_f73a1244370fcc2c: function(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n },\n __wbg___wbindgen_rethrow_2b7cc655458909c2: function(arg0) {\n throw takeObject(arg0);\n },\n __wbg___wbindgen_throw_9c31b086c2b26051: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_call_dfde26266607c996: function() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments); },\n __wbg_ceil_2f02237b685bdce4: function(arg0) {\n const ret = Math.ceil(arg0);\n return ret;\n },\n __wbg_clockworkcostmatrix_get_pointer_034c1334d6500e43: function(arg0) {\n const ret = clockworkcostmatrix_get_pointer(takeObject(arg0));\n return ret;\n },\n __wbg_create_55d0f7a358253d86: function(arg0) {\n const ret = Object.create(getObject(arg0));\n return addHeapObject(ret);\n },\n __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n },\n __wbg_getRawBuffer_2165a0506d77f9ca: function(arg0, arg1) {\n const ret = getObject(arg0).getRawBuffer(getObject(arg1));\n return addHeapObject(ret);\n },\n __wbg_getRoomTerrain_ff542df2ea2015b1: function() { return handleError(function (arg0) {\n const ret = Game.map.getRoomTerrain(getObject(arg0));\n return addHeapObject(ret);\n }, arguments); },\n __wbg_get_8f8e5734959cd5fc: function(arg0, arg1, arg2) {\n const ret = getObject(arg0).get(arg1, arg2);\n return ret;\n },\n __wbg_get_unchecked_1dfe6d05ad91d9b7: function(arg0, arg1) {\n const ret = getObject(arg0)[arg1 >>> 0];\n return addHeapObject(ret);\n },\n __wbg_get_value_3083233b2ad9f36e: function(arg0, arg1) {\n const ret = getObject(arg0)[getObject(arg1)];\n return addHeapObject(ret);\n },\n __wbg_length_2591a0f4f659a55c: function(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n },\n __wbg_log_57a4143223d80aa4: function(arg0, arg1) {\n console.log(getStringFromWasm0(arg0, arg1));\n },\n __wbg_lookFor_0ddc4d9f22e9bfe5: function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).lookFor(__wbindgen_enum_Look[arg1]);\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n }, arguments); },\n __wbg_new_1f236d63ba0c4784: function(arg0, arg1) {\n const ret = new Error(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n },\n __wbg_new_227d7c05414eb861: function() {\n const ret = new Error();\n return addHeapObject(ret);\n },\n __wbg_new_internal_dc21004de3373c5f: function() { return handleError(function (arg0) {\n const ret = new Room.Terrain(getObject(arg0));\n return addHeapObject(ret);\n }, arguments); },\n __wbg_rooms_c5dbffde521939da: function() {\n const ret = Game.rooms;\n return addHeapObject(ret);\n },\n __wbg_set_packed_cc769b1ab2aa7e8e: function(arg0, arg1) {\n getObject(arg0).__packedPos = arg1 >>> 0;\n },\n __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {\n const ret = getObject(arg1).stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n },\n __wbg_static_accessor_ROOM_POSITION_PROTOTYPE_9def1bb4de86c8f7: function() {\n const ret = RoomPosition.prototype;\n return addHeapObject(ret);\n },\n __wbg_structure_type_dbc211ed19dd8423: function(arg0) {\n const ret = getObject(arg0).structureType;\n return (__wbindgen_enum_StructureType.indexOf(ret) + 1 || 22) - 1;\n },\n __wbindgen_cast_0000000000000001: function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return addHeapObject(ret);\n },\n __wbindgen_cast_0000000000000002: function(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref(\"Uint8Array\")`.\n const ret = getArrayU8FromWasm0(arg0, arg1);\n return addHeapObject(ret);\n },\n __wbindgen_cast_0000000000000003: function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n },\n __wbindgen_object_drop_ref: function(arg0) {\n takeObject(arg0);\n },\n };\n return {\n __proto__: null,\n \"./screeps_clockwork_bg.js\": import0,\n };\n}\n\nconst __wbindgen_enum_Look = [\"creep\", \"energy\", \"resource\", \"source\", \"mineral\", \"structure\", \"flag\", \"constructionSite\", \"nuke\", \"terrain\", \"tombstone\", \"powerCreep\", \"deposit\", \"ruin\", \"scoreContainer\", \"scoreCollector\", \"symbolContainer\", \"symbolDecoder\", \"reactor\"];\n\n\nconst __wbindgen_enum_StructureType = [\"spawn\", \"extension\", \"road\", \"constructedWall\", \"rampart\", \"keeperLair\", \"portal\", \"controller\", \"link\", \"storage\", \"tower\", \"observer\", \"powerBank\", \"powerSpawn\", \"extractor\", \"lab\", \"terminal\", \"container\", \"nuker\", \"factory\", \"invaderCore\"];\nconst ClockworkCostMatrixFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_clockworkcostmatrix_free(ptr, 1));\nconst DistanceMapFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_distancemap_free(ptr, 1));\nconst FlowFieldFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_flowfield_free(ptr, 1));\nconst MonoFlowFieldFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_monoflowfield_free(ptr, 1));\nconst MultiroomDistanceMapFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_multiroomdistancemap_free(ptr, 1));\nconst MultiroomFlowFieldFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_multiroomflowfield_free(ptr, 1));\nconst MultiroomMonoFlowFieldFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_multiroommonoflowfield_free(ptr, 1));\nconst PathFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_path_free(ptr, 1));\nconst PathFatigueFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_pathfatigue_free(ptr, 1));\nconst SearchGoalFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_searchgoal_free(ptr, 1));\nconst SearchResultFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_searchresult_free(ptr, 1));\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\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n}\n\nfunction addBorrowedObject(obj) {\n if (stack_pointer == 1) throw new Error('out of js stack');\n heap[--stack_pointer] = obj;\n return stack_pointer;\n}\n\nfunction dropObject(idx) {\n if (idx < 1028) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction getArrayJsValueFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n const mem = getDataViewMemory0();\n const result = [];\n for (let i = ptr; i < ptr + 4 * len; i += 4) {\n result.push(takeObject(mem.getUint32(i, true)));\n }\n return result;\n}\n\nfunction getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return decodeText(ptr >>> 0, len);\n}\n\nlet cachedUint16ArrayMemory0 = null;\nfunction getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getObject(idx) { return heap[idx]; }\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_exn_store(addHeapObject(e));\n }\n}\n\nlet heap = new Array(1024).fill(undefined);\nheap.push(undefined, null, true, false);\n\nlet heap_next = heap.length;\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayJsValueToWasm0(array, malloc) {\n const ptr = malloc(array.length * 4, 4) >>> 0;\n const mem = getDataViewMemory0();\n for (let i = 0; i < array.length; i++) {\n mem.setUint32(ptr + 4 * i, addHeapObject(array[i]), true);\n }\n WASM_VECTOR_LEN = array.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet stack_pointer = 1024;\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = 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}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasmInstance, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasmInstance = instance;\n wasm = instance.exports;\n wasmModule = module;\n cachedDataViewMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (module_or_path === undefined) {\n module_or_path = new URL('screeps_clockwork_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","export const MAX_USIZE = 0xffffffff;\n","export function fromPacked(packedPos: number): RoomPosition {\n const pos = Object.create(RoomPosition.prototype);\n // Screeps stores __packedPos as a signed int32, while Clockwork receives\n // packed positions from WASM as u32. Re-sign the same bits so Map lookups and\n // direct comparisons against native RoomPosition.__packedPos values work.\n pos.__packedPos = packedPos | 0;\n return pos;\n}\n\nexport function fromPackedRoomName(packedRoomName: number): string {\n // Handle sim room case\n if (packedRoomName === 0) {\n return 'sim';\n }\n\n const HALF_WORLD_SIZE = 128;\n const x_coord = ((packedRoomName >> 8) & 0xff) - HALF_WORLD_SIZE;\n const y_coord = (packedRoomName & 0xff) - HALF_WORLD_SIZE;\n\n const result = (x_coord >= 0 ? `E${x_coord}` : `W${~x_coord}`) + (y_coord >= 0 ? `S${y_coord}` : `N${~y_coord}`);\n\n return result;\n}\n\nexport function packRoomName(room: string): number {\n // Handle sim room case\n if (room === 'sim') {\n return 0;\n }\n\n const HALF_WORLD_SIZE = 128;\n const [, h_dir, h_coord, v_dir, v_coord] = room.match(/^([WE])(\\d+)([NS])(\\d+)$/)!;\n\n let x = parseInt(h_coord);\n if (h_dir === 'W') {\n x = ~x;\n }\n\n let y = parseInt(v_coord);\n if (v_dir === 'N') {\n y = ~y;\n }\n\n x += HALF_WORLD_SIZE;\n y += HALF_WORLD_SIZE;\n\n return (x << 8) | y;\n}\n","import { DistanceMap } from '../wasm/screeps_clockwork';\n\n/**\n * A distance map for a single room.\n */\nexport class ClockworkDistanceMap {\n constructor(private _map: DistanceMap) {}\n\n /**\n * Gets the distance value at a given position.\n */\n get(x: number, y: number): number {\n return this._map.get(x, y);\n }\n\n /**\n * Sets the distance value at a given position.\n */\n set(x: number, y: number, value: number) {\n this._map.set(x, y, value);\n }\n\n /**\n * Converts the distance map into a flat array of distances.\n */\n toArray(): Uint32Array {\n return this._map.toArray();\n }\n}\n","import { FlowField } from '../wasm/screeps_clockwork';\n\n/**\n * A flow field for a single room that stores multiple directions per tile.\n */\nexport class ClockworkFlowField {\n constructor(private _flowField: FlowField) {}\n\n /**\n * Get the internal value for a given coordinate.\n */\n get(x: number, y: number): number {\n return this._flowField.get(x, y);\n }\n\n /**\n * Set the internal value for a given coordinate.\n */\n set(x: number, y: number, value: number): void {\n this._flowField.set(x, y, value);\n }\n\n /**\n * Get the list of valid directions for a given coordinate.\n */\n getDirections(x: number, y: number): DirectionConstant[] {\n return this._flowField.getDirections(x, y);\n }\n\n /**\n * Set the list of valid directions for a given coordinate.\n */\n setDirections(x: number, y: number, directions: DirectionConstant[]): void {\n this._flowField.setDirections(x, y, directions);\n }\n\n /**\n * Add a direction to the list of valid directions for a given coordinate.\n */\n addDirection(x: number, y: number, direction: DirectionConstant): void {\n this._flowField.addDirection(x, y, direction);\n }\n}\n","import { fromPacked } from '../utils/fromPacked';\nimport { Path } from '../wasm/screeps_clockwork';\n\n/**\n * A path from a start position to an end position. Typically returned by a\n * function like `ClockworkMultiroomFlowField.pathToOrigin` rather than created directly.\n */\nexport class ClockworkPath {\n constructor(private readonly path: Path) {}\n\n /**\n * Iterate over the path.\n *\n * @example\n * ```typescript\n * for (const pos of path) {\n * console.logUnsafe(pos);\n * }\n * ```\n */\n [Symbol.iterator]() {\n let index = 0;\n const length = this.length;\n\n return {\n next: () => {\n if (index < length - 1) {\n return { value: this.get(index++), done: false };\n } else {\n return { value: this.get(index++), done: true };\n }\n }\n };\n }\n\n /**\n * Iterate over the path in reverse order.\n *\n * @example\n * ```typescript\n * for (const pos of path.reversed()) {\n * console.logUnsafe(pos);\n * }\n * ```\n */\n *reversed() {\n let index = this.length - 1;\n\n return {\n next: () => {\n if (index > 0) {\n return { value: this.get(index--), done: false };\n } else {\n return { value: this.get(index--), done: true };\n }\n }\n };\n }\n\n /**\n * Get the position at a given index.\n */\n get(index: number) {\n const packedPos = this.path.get(index);\n if (packedPos === undefined) {\n throw new Error('Index out of bounds');\n }\n return fromPacked(packedPos);\n }\n\n /**\n * Get the length of the path.\n */\n get length() {\n return this.path.len();\n }\n\n /**\n * Given a current position, find the index of the next position in the path.\n */\n findNextIndex(pos: RoomPosition) {\n return this.path.find_next_index(pos.__packedPos);\n }\n\n /**\n * Convert the path to an array of positions.\n */\n toArray() {\n const result: RoomPosition[] = [];\n for (const packedPos of this.path.to_array()) {\n result.push(fromPacked(packedPos));\n }\n return result;\n }\n\n /**\n * Convert the path to an array of positions in reverse order.\n */\n toArrayReversed() {\n const result: RoomPosition[] = [];\n for (const packedPos of this.path.to_array_reversed()) {\n result.push(fromPacked(packedPos));\n }\n return result;\n }\n}\n","import { fromPackedRoomName, packRoomName } from '../utils/fromPacked';\nimport { MultiroomFlowField, js_path_to_multiroom_flow_field_origin } from '../wasm/screeps_clockwork';\nimport { ClockworkFlowField } from './flowField';\nimport { ClockworkPath } from './path';\n\n/**\n * A flow field that spans multiple rooms, storing multiple directions per tile.\n */\nexport class ClockworkMultiroomFlowField {\n constructor(private _flowField: MultiroomFlowField) {}\n\n /**\n * Get the flow field value at a given position.\n */\n get(pos: RoomPosition): number {\n return this._flowField.get(pos.__packedPos);\n }\n\n /**\n * Set the flow field value at a given position.\n */\n set(pos: RoomPosition, value: number): void {\n this._flowField.set(pos.__packedPos, value);\n }\n\n /**\n * Get the list of valid directions at a given position.\n */\n getDirections(pos: RoomPosition): DirectionConstant[] {\n return this._flowField.getDirections(pos.__packedPos);\n }\n\n /**\n * Set the list of valid directions at a given position.\n */\n setDirections(pos: RoomPosition, directions: DirectionConstant[]): void {\n this._flowField.setDirections(pos.__packedPos, directions);\n }\n\n /**\n * Add a direction to the list of valid directions at a given position.\n */\n addDirection(pos: RoomPosition, direction: DirectionConstant): void {\n this._flowField.addDirection(pos.__packedPos, direction);\n }\n\n /**\n * Get the list of rooms in the flow field.\n */\n getRooms(): string[] {\n const rooms = [];\n for (const packedRoomName of this._flowField.getRooms()) {\n rooms.push(fromPackedRoomName(packedRoomName));\n }\n return rooms;\n }\n\n /**\n * Get the flow field for a given room.\n */\n getRoom(roomName: string): ClockworkFlowField | null {\n const flowField = this._flowField.getRoom(packRoomName(roomName));\n return flowField ? new ClockworkFlowField(flowField) : null;\n }\n\n /**\n * Find a path from a given position to the origin of the flow field.\n */\n pathToOrigin(start: RoomPosition): ClockworkPath {\n return new ClockworkPath(js_path_to_multiroom_flow_field_origin(start.__packedPos, this._flowField));\n }\n}\n","import { MonoFlowField } from '../wasm/screeps_clockwork';\n\n/**\n * A flow field for a single room that stores one direction per tile.\n */\nexport class ClockworkMonoFlowField {\n constructor(private _flowField: MonoFlowField) {}\n\n /**\n * Get the direction for a given coordinate.\n */\n get(x: number, y: number): DirectionConstant | undefined {\n return this._flowField.get(x, y);\n }\n\n /**\n * Set the direction for a given coordinate.\n */\n set(x: number, y: number, value?: DirectionConstant): void {\n this._flowField.set(x, y, value);\n }\n}\n","import { fromPackedRoomName, packRoomName } from '../utils/fromPacked';\nimport { MultiroomMonoFlowField, js_path_to_multiroom_mono_flow_field_origin } from '../wasm/screeps_clockwork';\nimport { ClockworkMonoFlowField } from './monoFlowField';\nimport { ClockworkPath } from './path';\n\n/**\n * A flow field that spans multiple rooms, storing a single direction per tile.\n */\nexport class ClockworkMultiroomMonoFlowField {\n constructor(private _flowField: MultiroomMonoFlowField) {}\n\n /**\n * Get the direction at a given position.\n */\n get(pos: RoomPosition): DirectionConstant | null {\n return this._flowField.get(pos.__packedPos) ?? null;\n }\n\n /**\n * Set the direction at a given position.\n */\n set(pos: RoomPosition, direction: DirectionConstant | null): void {\n this._flowField.set(pos.__packedPos, direction ?? undefined);\n }\n\n /**\n * Get the list of rooms in the flow field.\n */\n getRooms(): string[] {\n const rooms = [];\n for (const packedRoomName of this._flowField.getRooms()) {\n rooms.push(fromPackedRoomName(packedRoomName));\n }\n return rooms;\n }\n\n /**\n * Get the flow field for a given room.\n */\n getRoom(roomName: string): ClockworkMonoFlowField | null {\n const flowField = this._flowField.getRoom(packRoomName(roomName));\n return flowField ? new ClockworkMonoFlowField(flowField) : null;\n }\n\n /**\n * Find a path from a given position to the origin of the flow field.\n */\n pathToOrigin(start: RoomPosition): ClockworkPath {\n return new ClockworkPath(js_path_to_multiroom_mono_flow_field_origin(start.__packedPos, this._flowField));\n }\n}\n","import { fromPackedRoomName, packRoomName } from '../utils/fromPacked';\nimport {\n DirectionOrder,\n js_path_to_multiroom_distance_map_origin,\n MultiroomDistanceMap,\n multiroomFlowField,\n multiroomMonoFlowField\n} from '../wasm/screeps_clockwork';\nimport { ClockworkDistanceMap } from './distanceMap';\nimport { ClockworkMultiroomFlowField } from './multiroomFlowField';\nimport { ClockworkMultiroomMonoFlowField } from './multiroomMonoFlowField';\nimport { ClockworkPath } from './path';\n\nexport interface DirectionOrderOptions {\n directionOrder?: DirectionOrder;\n}\n\nconst DEFAULT_DIRECTION_ORDER = DirectionOrder.CardinalFirst;\n\n/**\n * A distance map that covers multiple rooms. Typically returned by a function\n * like `bfsMultiroomDistanceMap` rather than created directly.\n */\nexport class ClockworkMultiroomDistanceMap {\n constructor(private _map: MultiroomDistanceMap) {}\n\n /**\n * Get the stored value for a given position.\n */\n get(pos: RoomPosition): number {\n return this._map.get(pos.__packedPos);\n }\n\n /**\n * Set the stored value for a given position.\n */\n set(pos: RoomPosition, value: number) {\n this._map.set(pos.__packedPos, value);\n }\n\n /**\n * Get the DistanceMap for a given room.\n */\n getRoom(room: string): ClockworkDistanceMap | undefined {\n const map = this._map.get_room(packRoomName(room));\n return map ? new ClockworkDistanceMap(map) : undefined;\n }\n\n /**\n * List all the rooms covered by this distance map.\n */\n getRooms(): string[] {\n return [...this._map.get_rooms()].map(room => fromPackedRoomName(room));\n }\n\n /**\n * Path to the origin from a given position.\n * Pass `DirectionOrder.DiagonalFirst` to prefer diagonal steps when multiple neighbors are equally close.\n */\n pathToOrigin(start: RoomPosition, options: DirectionOrderOptions = {}): ClockworkPath {\n return new ClockworkPath(\n js_path_to_multiroom_distance_map_origin(\n start.__packedPos,\n this._map,\n options.directionOrder ?? DEFAULT_DIRECTION_ORDER\n )\n );\n }\n\n /**\n * Flow field for this distance map.\n * Pass `DirectionOrder.DiagonalFirst` to prefer diagonal directions when multiple neighbors are equally close.\n */\n toFlowField(options: DirectionOrderOptions = {}): ClockworkMultiroomFlowField {\n return new ClockworkMultiroomFlowField(\n multiroomFlowField(this._map, options.directionOrder ?? DEFAULT_DIRECTION_ORDER)\n );\n }\n\n /**\n * Mono-directional flow field for this distance map.\n * Pass `DirectionOrder.DiagonalFirst` to prefer diagonal directions when multiple neighbors are equally close.\n */\n toMonoFlowField(options: DirectionOrderOptions = {}): ClockworkMultiroomMonoFlowField {\n return new ClockworkMultiroomMonoFlowField(\n multiroomMonoFlowField(this._map, options.directionOrder ?? DEFAULT_DIRECTION_ORDER)\n );\n }\n}\n","import { fromPacked } from '../utils/fromPacked';\nimport { SearchResult } from '../wasm/screeps_clockwork';\nimport { ClockworkMultiroomDistanceMap } from './multiroomDistanceMap';\n\nexport function fromPackedSearchResult(result: SearchResult) {\n const foundTargets = result.found_targets.reduce((acc, pos) => {\n acc.push(fromPacked(pos));\n return acc;\n }, [] as RoomPosition[]);\n const distanceMap = new ClockworkMultiroomDistanceMap(result.distance_map);\n const ops = result.ops;\n\n return {\n distanceMap,\n foundTargets,\n ops\n };\n}\n","import { MAX_USIZE } from '../utils/constants';\nimport { fromPackedRoomName } from '../utils/fromPacked';\nimport { ClockworkCostMatrix, js_astar_multiroom_distance_map } from '../wasm/screeps_clockwork';\nimport { fromPackedSearchResult } from './searchResult';\n\n/**\n * Create a distance map for the given start positions, using a breadth-first search.\n * This does not factor in terrain costs (treating anything less than 255 in the cost\n * matrix as passable), so it's faster but less useful than Dijkstra's algorithm.\n *\n * This calculates a distance map across multiple rooms, with a few configurable limits:\n * - `maxOps`: The maximum number of pathfinding operations to perform.\n * - `maxRooms`: The maximum number of rooms to explore.\n * - `maxPathCost`: Don't explore tiles with a greater path cost than this.\n *\n * At least one of these limits must be set.\n *\n * @param start - The starting positions.\n * @param options - The options for the distance map.\n * @returns A multi-room distance map.\n */\nexport function astarMultiroomDistanceMap(\n start: RoomPosition[],\n {\n costMatrixCallback,\n maxRooms = MAX_USIZE,\n maxOps = MAX_USIZE,\n maxPathCost = MAX_USIZE,\n anyOfDestinations,\n allOfDestinations\n }: {\n costMatrixCallback: (room: string) => ClockworkCostMatrix | undefined;\n maxRooms?: number;\n maxOps?: number;\n maxPathCost?: number;\n anyOfDestinations?: { pos: RoomPosition; range: number }[];\n allOfDestinations?: { pos: RoomPosition; range: number }[];\n }\n) {\n if ([maxRooms, maxOps, maxPathCost].every(n => n === MAX_USIZE) && !anyOfDestinations && !allOfDestinations) {\n throw new Error(\n 'At least one of maxRooms, maxOps, maxPathCost, anyOfDestinations, or allOfDestinations must be set'\n );\n }\n\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_astar_multiroom_distance_map(\n startPacked,\n (room: number) => costMatrixCallback(fromPackedRoomName(room)),\n maxRooms,\n maxOps,\n maxPathCost,\n anyOfDestinations\n ? new Uint32Array(\n anyOfDestinations.reduce((acc, { pos, range }) => {\n acc.push(pos.__packedPos, range);\n return acc;\n }, [] as number[])\n )\n : undefined,\n allOfDestinations\n ? new Uint32Array(\n allOfDestinations.reduce((acc, { pos, range }) => {\n acc.push(pos.__packedPos, range);\n return acc;\n }, [] as number[])\n )\n : undefined\n );\n\n return fromPackedSearchResult(result);\n}\n","import { MAX_USIZE } from '../utils/constants';\nimport { fromPackedRoomName } from '../utils/fromPacked';\nimport { ClockworkCostMatrix, js_bfs_multiroom_distance_map } from '../wasm/screeps_clockwork';\nimport { fromPackedSearchResult } from './searchResult';\n\n/**\n * Create a distance map for the given start positions, using a breadth-first search.\n * This does not factor in terrain costs (treating anything less than 255 in the cost\n * matrix as passable), so it's faster but less useful than Dijkstra's algorithm.\n *\n * This calculates a distance map across multiple rooms, with a few configurable limits:\n * - `maxOps`: The maximum number of pathfinding operations to perform.\n * - `maxRooms`: The maximum number of rooms to explore.\n * - `maxPathCost`: Don't explore tiles with a greater path cost than this.\n *\n * At least one of these limits must be set.\n *\n * @param start - The starting positions.\n * @param options - The options for the distance map.\n * @returns A multi-room distance map.\n */\nexport function bfsMultiroomDistanceMap(\n start: RoomPosition[],\n {\n costMatrixCallback,\n maxOps = MAX_USIZE,\n maxRooms = MAX_USIZE,\n maxPathCost = MAX_USIZE,\n anyOfDestinations,\n allOfDestinations\n }: {\n costMatrixCallback: (room: string) => ClockworkCostMatrix | undefined;\n maxOps?: number;\n maxRooms?: number;\n maxPathCost?: number;\n anyOfDestinations?: { pos: RoomPosition; range: number }[];\n allOfDestinations?: { pos: RoomPosition; range: number }[];\n }\n) {\n if ([maxOps, maxRooms, maxPathCost].every(n => n === MAX_USIZE) && !anyOfDestinations && !allOfDestinations) {\n throw new Error(\n 'At least one of maxOps, maxRooms, maxRoomDistance, maxPathCost, anyOfDestinations, or allOfDestinations must be set'\n );\n }\n\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_bfs_multiroom_distance_map(\n startPacked,\n (room: number) => costMatrixCallback(fromPackedRoomName(room)),\n maxOps,\n maxRooms,\n maxPathCost,\n anyOfDestinations\n ? new Uint32Array(\n anyOfDestinations.reduce((acc, { pos, range }) => {\n acc.push(pos.__packedPos, range);\n return acc;\n }, [] as number[])\n )\n : undefined,\n allOfDestinations\n ? new Uint32Array(\n allOfDestinations.reduce((acc, { pos, range }) => {\n acc.push(pos.__packedPos, range);\n return acc;\n }, [] as number[])\n )\n : undefined\n );\n\n return fromPackedSearchResult(result);\n}\n","import { MAX_USIZE } from '../utils/constants';\nimport { fromPackedRoomName } from '../utils/fromPacked';\nimport { ClockworkCostMatrix, js_dijkstra_multiroom_distance_map } from '../wasm/screeps_clockwork';\nimport { fromPackedSearchResult } from './searchResult';\n\n/**\n * Create a distance map for the given start positions, using Dijkstra's algorithm to\n * factor in terrain costs (0-255, where 255 is impassable).\n *\n * This calculates a distance map across multiple rooms, with a few configurable limits:\n * - `maxOps`: The maximum number of pathfinding operations to perform.\n * - `maxRooms`: The maximum number of rooms to explore.\n * - `maxPathCost`: Don't explore tiles with a greater path cost than this.\n *\n * At least one of these limits must be set.\n *\n * @param start - The starting positions.\n * @param options - The options for the distance map.\n * @returns A multi-room distance map.\n */\nexport function dijkstraMultiroomDistanceMap(\n start: RoomPosition[],\n {\n costMatrixCallback,\n maxOps = MAX_USIZE,\n maxRooms = MAX_USIZE,\n maxPathCost = MAX_USIZE,\n anyOfDestinations,\n allOfDestinations\n }: {\n costMatrixCallback: (room: string) => ClockworkCostMatrix | undefined;\n maxOps?: number;\n maxRooms?: number;\n maxPathCost?: number;\n anyOfDestinations?: { pos: RoomPosition; range: number }[];\n allOfDestinations?: { pos: RoomPosition; range: number }[];\n }\n) {\n if ([maxOps, maxRooms, maxPathCost].every(n => n === MAX_USIZE) && !anyOfDestinations && !allOfDestinations) {\n throw new Error(\n 'At least one of maxOps, maxRooms, maxPathCost, anyOfDestinations, or allOfDestinations must be set'\n );\n }\n\n const startPacked = new Uint32Array(start.map(pos => pos.__packedPos));\n const result = js_dijkstra_multiroom_distance_map(\n startPacked,\n (room: number) => costMatrixCallback(fromPackedRoomName(room)),\n maxOps,\n maxRooms,\n maxPathCost,\n anyOfDestinations\n ? new Uint32Array(\n anyOfDestinations.reduce((acc, { pos, range }) => {\n acc.push(pos.__packedPos, range);\n return acc;\n }, [] as number[])\n )\n : undefined,\n allOfDestinations\n ? new Uint32Array(\n allOfDestinations.reduce((acc, { pos, range }) => {\n acc.push(pos.__packedPos, range);\n return acc;\n }, [] as number[])\n )\n : undefined\n );\n\n return fromPackedSearchResult(result);\n}\n","import { get_range } from '../wasm/screeps_clockwork';\n\n/**\n * Get the global range between two positions. This is different\n * from the `getRange` method on `RoomPosition`, which gets the\n * range only within the same room.\n *\n * @param pos1 - The first position.\n * @param pos2 - The second position.\n * @returns The range between the two positions.\n */\nexport function getRange(pos1: RoomPosition, pos2: RoomPosition) {\n return get_range(pos1.__packedPos, pos2.__packedPos);\n}\n","import { packRoomName } from '../utils/fromPacked';\nimport { ClockworkCostMatrix, get_terrain_cost_matrix } from '../wasm/screeps_clockwork';\n\nexport function getTerrainCostMatrix(\n roomName: string,\n { plainCost, swampCost, wallCost }: { plainCost?: number; swampCost?: number; wallCost?: number } = {}\n): ClockworkCostMatrix {\n return get_terrain_cost_matrix(packRoomName(roomName), plainCost, swampCost, wallCost);\n}\n","/// <reference types=\"../types.d.ts\" />\nimport 'fastestsmallesttextencoderdecoder-encodeinto/EncoderDecoderTogether.min.js';\n\nimport { type InitOutput, ClockworkCostMatrix, DirectionOrder, initSync, version } from './wasm/screeps_clockwork';\nexport { ClockworkCostMatrix, DirectionOrder };\n\nexport * from './wrappers/astarDistanceMap';\nexport * from './wrappers/bfsDistanceMap';\nexport * from './wrappers/dijkstraDistanceMap';\nexport * from './wrappers/flowField';\nexport * from './wrappers/getRange';\nexport * from './wrappers/getTerrainCostMatrix';\nexport * from './wrappers/monoFlowField';\nexport * from './wrappers/multiroomFlowField';\nexport * from './wrappers/multiroomMonoFlowField';\nexport * from './wrappers/path';\n\ndeclare namespace WebAssembly {\n class Module {\n constructor(bytes: Uint8Array);\n }\n}\n\nlet wasm_bytes: Uint8Array;\nlet wasm_module: WebAssembly.Module;\nlet wasm_instance: InitOutput;\nlet initialized = false;\n/**\n * The `initialize` function should be called in your main loop before\n * using any other screeps-clockwork functions. Depending on available\n * CPU, it may not load the WASM module completely in the first tick,\n * but it will pick back up where it left off if the script times out.\n *\n * @param verbose - If true, will log the state of the WASM module as it loads.\n */\nexport function initialize(verbose = false) {\n // need to freshly override the fake console object each tick\n console.error = console_error;\n const start = Game.cpu.getUsed();\n if (!wasm_bytes) wasm_bytes = require('screeps_clockwork.wasm');\n if (verbose && !initialized) console.logUnsafe('[clockwork] wasm_bytes loaded');\n if (!wasm_module) wasm_module = new WebAssembly.Module(wasm_bytes);\n if (verbose && !initialized) console.logUnsafe('[clockwork] wasm_module loaded');\n if (!wasm_instance) wasm_instance = initSync({ module: wasm_module });\n if (verbose && !initialized) {\n console.logUnsafe('[clockwork] wasm_instance loaded');\n console.logUnsafe(\n `[clockwork] version ${version()} initialized with ${(Game.cpu.getUsed() - start).toFixed(2)} CPU`\n );\n }\n initialized = true;\n}\n\n// This provides the function `console.error` that wasm_bindgen sometimes expects to exist,\n// especially with type checks in debug mode. An alternative is to have this be `function () {}`\n// and let the exception handler log the thrown JS exceptions, but there is some additional\n// information that wasm_bindgen only passes here.\n//\n// There is nothing special about this function and it may also be used by any JS/Rust code as a convenience.\nfunction console_error() {\n const processedArgs = Array.from(arguments)\n .map(arg => {\n if (arg instanceof Error) {\n // On this version of Node, the `stack` property of errors contains\n // the message as well.\n return arg.stack;\n } else {\n return arg;\n }\n })\n .join(' ');\n console.logUnsafe('ERROR:', processedArgs);\n}\n"],"names":["global","this"],"mappings":"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,CAAC,GAAG,CAAC,EAAE,CAAC;AACnf,CAAA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtf,CAAA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GA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"}
Binary file
@@ -1,7 +1,6 @@
1
1
  import 'fastestsmallesttextencoderdecoder-encodeinto/EncoderDecoderTogether.min.js';
2
- import { ClockworkCostMatrix, DirectionOrder, DistanceMap, FlowField, MonoFlowField } from './wasm/screeps_clockwork';
3
- export { ClockworkCostMatrix, DirectionOrder, DistanceMap, FlowField, MonoFlowField };
4
- export * from './utils/cleanup';
2
+ import { ClockworkCostMatrix, DirectionOrder } from './wasm/screeps_clockwork';
3
+ export { ClockworkCostMatrix, DirectionOrder };
5
4
  export * from './wrappers/astarDistanceMap';
6
5
  export * from './wrappers/bfsDistanceMap';
7
6
  export * from './wrappers/dijkstraDistanceMap';
@@ -17,8 +17,4 @@ export declare class ClockworkDistanceMap {
17
17
  * Converts the distance map into a flat array of distances.
18
18
  */
19
19
  toArray(): Uint32Array;
20
- /**
21
- * Frees the memory allocated for this distance map.
22
- */
23
- free(): void;
24
20
  }
@@ -25,8 +25,4 @@ export declare class ClockworkFlowField {
25
25
  * Add a direction to the list of valid directions for a given coordinate.
26
26
  */
27
27
  addDirection(x: number, y: number, direction: DirectionConstant): void;
28
- /**
29
- * Free the memory allocated for this flow field.
30
- */
31
- free(): void;
32
28
  }
@@ -13,8 +13,4 @@ export declare class ClockworkMonoFlowField {
13
13
  * Set the direction for a given coordinate.
14
14
  */
15
15
  set(x: number, y: number, value?: DirectionConstant): void;
16
- /**
17
- * Free the memory allocated for this flow field.
18
- */
19
- free(): void;
20
16
  }
@@ -1,4 +1,5 @@
1
- import { DistanceMap, DirectionOrder, MultiroomDistanceMap } from '../wasm/screeps_clockwork';
1
+ import { DirectionOrder, MultiroomDistanceMap } from '../wasm/screeps_clockwork';
2
+ import { ClockworkDistanceMap } from './distanceMap';
2
3
  import { ClockworkMultiroomFlowField } from './multiroomFlowField';
3
4
  import { ClockworkMultiroomMonoFlowField } from './multiroomMonoFlowField';
4
5
  import { ClockworkPath } from './path';
@@ -23,15 +24,11 @@ export declare class ClockworkMultiroomDistanceMap {
23
24
  /**
24
25
  * Get the DistanceMap for a given room.
25
26
  */
26
- getRoom(room: string): DistanceMap | undefined;
27
+ getRoom(room: string): ClockworkDistanceMap | undefined;
27
28
  /**
28
29
  * List all the rooms covered by this distance map.
29
30
  */
30
31
  getRooms(): string[];
31
- /**
32
- * Free the memory allocated for this distance map.
33
- */
34
- free(): void;
35
32
  /**
36
33
  * Path to the origin from a given position.
37
34
  * Pass `DirectionOrder.DiagonalFirst` to prefer diagonal steps when multiple neighbors are equally close.
@@ -39,8 +39,4 @@ export declare class ClockworkMultiroomFlowField {
39
39
  * Find a path from a given position to the origin of the flow field.
40
40
  */
41
41
  pathToOrigin(start: RoomPosition): ClockworkPath;
42
- /**
43
- * Free the memory allocated for this flow field.
44
- */
45
- free(): void;
46
42
  }
@@ -27,8 +27,4 @@ export declare class ClockworkMultiroomMonoFlowField {
27
27
  * Find a path from a given position to the origin of the flow field.
28
28
  */
29
29
  pathToOrigin(start: RoomPosition): ClockworkPath;
30
- /**
31
- * Free the memory allocated for this flow field.
32
- */
33
- free(): void;
34
30
  }
@@ -58,8 +58,4 @@ export declare class ClockworkPath {
58
58
  * Convert the path to an array of positions in reverse order.
59
59
  */
60
60
  toArrayReversed(): RoomPosition[];
61
- /**
62
- * Free the memory allocated for this path.
63
- */
64
- free(): void;
65
61
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "screeps-clockwork",
3
- "version": "0.8.0",
3
+ "version": "0.9.1",
4
4
  "description": "A WASM movement library for Screeps",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -1,23 +0,0 @@
1
- /**
2
- * Mark an item as ephemeral. This means that the item will be freed after the
3
- * current tick.
4
- *
5
- * If you don't use this to clean up your data, you'll need to call `free()`
6
- * yourself.
7
- *
8
- * @param item - The item to be cleaned up.
9
- * @returns The item.
10
- */
11
- export declare function ephemeral<T extends {
12
- free: () => void;
13
- }>(item: T): T;
14
- /**
15
- * Persist an ephemeral item. This means that the item will not be freed after
16
- * the current tick.
17
- *
18
- * @param item - The item to be persisted.
19
- * @returns The item.
20
- */
21
- export declare function persist<T extends {
22
- free: () => void;
23
- }>(item: T): T;