@starktma/minecraft-utils 1.3.111 → 1.5.0

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.
Files changed (68) hide show
  1. package/README.md +56 -0
  2. package/dist/constants.d.ts +26 -0
  3. package/dist/constants.d.ts.map +1 -0
  4. package/dist/constants.js +34 -0
  5. package/dist/constants.js.map +1 -0
  6. package/dist/database/database.d.ts +8 -5
  7. package/dist/database/database.d.ts.map +1 -1
  8. package/dist/database/database.js +40 -38
  9. package/dist/database/database.js.map +1 -1
  10. package/dist/database/index.d.ts +1 -3
  11. package/dist/database/index.d.ts.map +1 -1
  12. package/dist/database/index.js +1 -2
  13. package/dist/database/index.js.map +1 -1
  14. package/dist/game-state-machine/branch.js +2 -2
  15. package/dist/game-state-machine/branch.js.map +1 -1
  16. package/dist/game-state-machine/database.d.ts +10 -3
  17. package/dist/game-state-machine/database.d.ts.map +1 -1
  18. package/dist/game-state-machine/database.js +20 -2
  19. package/dist/game-state-machine/database.js.map +1 -1
  20. package/dist/game-state-machine/index.d.ts +1 -2
  21. package/dist/game-state-machine/index.d.ts.map +1 -1
  22. package/dist/game-state-machine/index.js +1 -2
  23. package/dist/game-state-machine/index.js.map +1 -1
  24. package/dist/game-state-machine/stateMachine.d.ts +6 -9
  25. package/dist/game-state-machine/stateMachine.d.ts.map +1 -1
  26. package/dist/game-state-machine/stateMachine.js +72 -86
  27. package/dist/game-state-machine/stateMachine.js.map +1 -1
  28. package/dist/index.d.ts +1 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +2 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/math/BFSScanner.d.ts +117 -0
  33. package/dist/math/BFSScanner.d.ts.map +1 -0
  34. package/dist/math/BFSScanner.js +388 -0
  35. package/dist/math/BFSScanner.js.map +1 -0
  36. package/dist/math/Perlin2D.d.ts +12 -0
  37. package/dist/math/Perlin2D.d.ts.map +1 -0
  38. package/dist/math/Perlin2D.js +115 -0
  39. package/dist/math/Perlin2D.js.map +1 -0
  40. package/dist/math/index.d.ts +63 -59
  41. package/dist/math/index.d.ts.map +1 -1
  42. package/dist/math/index.js +150 -76
  43. package/dist/math/index.js.map +1 -1
  44. package/dist/minecraft/effectsAPI.d.ts +69 -0
  45. package/dist/minecraft/effectsAPI.d.ts.map +1 -0
  46. package/dist/minecraft/effectsAPI.js +441 -0
  47. package/dist/minecraft/effectsAPI.js.map +1 -0
  48. package/dist/minecraft/index.d.ts +7 -3
  49. package/dist/minecraft/index.d.ts.map +1 -1
  50. package/dist/minecraft/index.js +53 -29
  51. package/dist/minecraft/index.js.map +1 -1
  52. package/dist/minecraft/projectileAPI.d.ts +23 -0
  53. package/dist/minecraft/projectileAPI.d.ts.map +1 -0
  54. package/dist/minecraft/projectileAPI.js +148 -0
  55. package/dist/minecraft/projectileAPI.js.map +1 -0
  56. package/dist/minecraft/structuresAPI.d.ts +11 -0
  57. package/dist/minecraft/structuresAPI.d.ts.map +1 -0
  58. package/dist/minecraft/structuresAPI.js +66 -0
  59. package/dist/minecraft/structuresAPI.js.map +1 -0
  60. package/package.json +7 -3
  61. package/dist/database/constants.d.ts +0 -2
  62. package/dist/database/constants.d.ts.map +0 -1
  63. package/dist/database/constants.js +0 -2
  64. package/dist/database/constants.js.map +0 -1
  65. package/dist/game-state-machine/constants.d.ts +0 -2
  66. package/dist/game-state-machine/constants.d.ts.map +0 -1
  67. package/dist/game-state-machine/constants.js +0 -2
  68. package/dist/game-state-machine/constants.js.map +0 -1
package/README.md CHANGED
@@ -2,6 +2,46 @@
2
2
 
3
3
  This package provides a small collection of TypeScript utilities. The code is split into focused modules; this README gives a short summary and points to the source files for details.
4
4
 
5
+ ## Configuration
6
+
7
+ ### Setting a Custom Namespace
8
+
9
+ By default, this package uses the namespace `"starktma"` for internal identifiers, database keys, and event names. You can configure a custom namespace for your project to avoid conflicts with other add-ons.
10
+
11
+ **Important:** The namespace should be set once at the very beginning of your application, before any other package functionality is used.
12
+
13
+ ```typescript
14
+ import { setNamespace } from "@starktma/minecraft-utils/config";
15
+
16
+ // Set your custom namespace early in your application
17
+ setNamespace("myproject");
18
+
19
+ // Now use other package features
20
+ import { StateMachine } from "@starktma/minecraft-utils/game-state-machine";
21
+ import { SimpleDatabase } from "@starktma/minecraft-utils/database";
22
+ ```
23
+
24
+ The namespace affects:
25
+
26
+ - Database property keys (e.g., `"myproject:playerData"` instead of `"starktma:playerData"`)
27
+ - Game state machine event IDs (e.g., `"myproject:reset"` instead of `"starktma:reset"`)
28
+ - Branch identifiers in the state machine
29
+
30
+ ### Configuration API
31
+
32
+ ```typescript
33
+ import { setNamespace, getNamespace, resetNamespace } from "@starktma/minecraft-utils/config";
34
+
35
+ // Set a custom namespace
36
+ setNamespace("myproject");
37
+
38
+ // Get the current namespace
39
+ const currentNamespace = getNamespace(); // Returns "myproject"
40
+
41
+ // Reset to default (primarily for testing)
42
+ resetNamespace(); // Resets to "starktma"
43
+ ```
44
+
5
45
  ## Quick summary
6
46
 
7
47
  - **database** — lightweight JSON storage helpers for Minecraft's dynamic properties. Implements a `DatabaseManager` (low-level serialization/partitioning) and `SimpleDatabase` (convenience base class for storing objects by id). See `src/database` for full details and examples.
@@ -48,6 +88,15 @@ The StateMachine is still under development.
48
88
 
49
89
  ## Usage
50
90
 
91
+ First, configure your namespace (recommended):
92
+
93
+ ```typescript
94
+ import { setNamespace } from "@starktma/minecraft-utils/config";
95
+
96
+ // Set your project's namespace before using other features
97
+ setNamespace("myproject");
98
+ ```
99
+
51
100
  Import the StateMachine at the beginning of your server script:
52
101
 
53
102
  ```typescript
@@ -59,6 +108,13 @@ Use the provided methods to create and manage branches and levels, and to handle
59
108
  ### Example
60
109
 
61
110
  ```typescript
111
+ // Configure namespace first
112
+ import { setNamespace } from "@starktma/minecraft-utils/config";
113
+ setNamespace("myproject");
114
+
115
+ // Import other functionality
116
+ import { stateMachine } from "@starktma/minecraft-utils/game-state-machine";
117
+
62
118
  // Create a new branch
63
119
  const myBranch = stateMachine.createBranch("myCustomBranch");
64
120
 
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Configuration for minecraft-utils package.
3
+ * This allows consumers to set a custom namespace for their project.
4
+ */
5
+ /**
6
+ * Sets the namespace for this package instance.
7
+ * This should be called once at the beginning of your application.
8
+ *
9
+ * @param namespace - The namespace to use for this package
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { setNamespace } from "@starktma/minecraft-utils/config";
14
+ *
15
+ * // Set your custom namespace
16
+ * setNamespace("myproject");
17
+ * ```
18
+ */
19
+ export declare function setNamespace(namespace: string): void;
20
+ /**
21
+ * Gets the current namespace.
22
+ *
23
+ * @returns The current namespace
24
+ */
25
+ export declare function getNamespace(): string;
26
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAKpD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Configuration for minecraft-utils package.
3
+ * This allows consumers to set a custom namespace for their project.
4
+ */
5
+ let _namespace = "starktma"; // Default namespace
6
+ /**
7
+ * Sets the namespace for this package instance.
8
+ * This should be called once at the beginning of your application.
9
+ *
10
+ * @param namespace - The namespace to use for this package
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { setNamespace } from "@starktma/minecraft-utils/config";
15
+ *
16
+ * // Set your custom namespace
17
+ * setNamespace("myproject");
18
+ * ```
19
+ */
20
+ export function setNamespace(namespace) {
21
+ if (!namespace || typeof namespace !== "string") {
22
+ throw new Error("Namespace must be a non-empty string");
23
+ }
24
+ _namespace = namespace;
25
+ }
26
+ /**
27
+ * Gets the current namespace.
28
+ *
29
+ * @returns The current namespace
30
+ */
31
+ export function getNamespace() {
32
+ return _namespace;
33
+ }
34
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,IAAI,UAAU,GAAW,UAAU,CAAC,CAAC,oBAAoB;AAEzD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC7C,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACzD,CAAC;IACD,UAAU,GAAG,SAAS,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY;IAC3B,OAAO,UAAU,CAAC;AACnB,CAAC"}
@@ -19,9 +19,12 @@ import { SimpleObject } from "./interfaces";
19
19
  * return MyDatabase.instance;
20
20
  * }
21
21
  */
22
- export declare class SimpleDatabase<T extends SimpleObject> {
22
+ declare class SimpleDatabase<T extends SimpleObject> {
23
23
  private mainDB;
24
24
  private localDB;
25
+ private pendingChanges;
26
+ private static readonly SAVE_INTERVAL;
27
+ private static readonly SAVE_THRESHOLD;
25
28
  protected databaseName: string;
26
29
  /**
27
30
  * The constructor initializes the local database and syncs it with the main database.
@@ -30,17 +33,16 @@ export declare class SimpleDatabase<T extends SimpleObject> {
30
33
  */
31
34
  protected constructor(databaseName: string, target?: Entity | undefined);
32
35
  /**
33
- * Updates the main database with the local database.
34
- * This method is called automatically when an object is added, updated or removed.
35
- * @private
36
+ * Immediately saves the local database to the main database.
36
37
  */
37
- private updateMainDB;
38
+ private save;
38
39
  /**
39
40
  * Retrieves the main database.
40
41
  * @private
41
42
  * @returns The main database.
42
43
  */
43
44
  private getMainDB;
45
+ forceSave(): void;
44
46
  /**
45
47
  * Adds an object to the local database and updates the main database.
46
48
  * @param object The object to be added.
@@ -84,4 +86,5 @@ export declare class SimpleDatabase<T extends SimpleObject> {
84
86
  */
85
87
  forEach(callback: (object: SimpleObject, index: number) => void): void;
86
88
  }
89
+ export { SimpleDatabase, SimpleObject };
87
90
  //# sourceMappingURL=database.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AA8I5C;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,cAAc,CAAC,CAAC,SAAS,YAAY;IACjD,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAM;IAErB,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAE/B;;;;OAIG;IACH,SAAS,aAAa,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS;IAYvE;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAIjB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAK1B;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAO7B;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI9B;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAIpC;;;OAGG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK9B;;;OAGG;IACH,aAAa,IAAI,CAAC,EAAE;IAIpB;;OAEG;IACH,eAAe,IAAI,IAAI;IAKvB;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;CAGtE"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAwB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAqI5C;;;;;;;;;;;;;;;;;;GAkBG;AACH,cAAM,cAAc,CAAC,CAAC,SAAS,YAAY;IAC1C,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAM;IAErB,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAU;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAM;IAE5C,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAE/B;;;;OAIG;IACH,SAAS,aAAa,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS;IAsBvE;;OAEG;IACH,OAAO,CAAC,IAAI;IAKZ;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAIjB,SAAS;IAIT;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAK1B;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAO7B;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI9B;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAIpC;;;OAGG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK9B;;;OAGG;IACH,aAAa,IAAI,CAAC,EAAE;IAIpB;;OAEG;IACH,eAAe,IAAI,IAAI;IAKvB;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;CAGtE;AAED,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC"}
@@ -1,6 +1,5 @@
1
- import { Entity, world } from "@minecraft/server";
2
- //@ts-ignore
3
- import { NAMESPACE } from "./constants";
1
+ import { Entity, system, world } from "@minecraft/server";
2
+ import { getNamespace } from "../constants";
4
3
  /**
5
4
  * DatabaseManager is a class that manages databases stored in Minecraft's world properties.
6
5
  * Currently only supports JSON databases.
@@ -23,9 +22,7 @@ class DatabaseManager {
23
22
  * @returns True if the database exists, false otherwise.
24
23
  */
25
24
  hasJSONDatabase(databaseName) {
26
- if (!this.target)
27
- return false;
28
- return this.target.getDynamicProperty(NAMESPACE + ":" + databaseName) !== undefined;
25
+ return this.target.getDynamicProperty(databaseName) !== undefined;
29
26
  }
30
27
  /**
31
28
  * Adds a new JSON database with the given name and data.
@@ -33,11 +30,8 @@ class DatabaseManager {
33
30
  * @param database The data to be stored in the database.
34
31
  */
35
32
  addJSONDatabase(databaseName, database) {
36
- if (!this.target)
37
- return;
38
- const propertyName = `${NAMESPACE}:${databaseName}`;
39
33
  const jsonString = JSON.stringify(database);
40
- const existingProp = this.target.getDynamicProperty(propertyName);
34
+ const existingProp = this.target.getDynamicProperty(databaseName);
41
35
  let existingChunks = 0;
42
36
  if (existingProp) {
43
37
  try {
@@ -51,18 +45,18 @@ class DatabaseManager {
51
45
  if (jsonString.length <= DatabaseManager.DYNAMIC_PROP_MAX_LENGTH || jsonString.length === 0) {
52
46
  if (existingChunks > 0) {
53
47
  for (let i = 0; i < existingChunks; i++) {
54
- const partName = `${propertyName}_${i}`;
48
+ const partName = `${databaseName}_${i}`;
55
49
  this.target.setDynamicProperty(partName, undefined);
56
50
  }
57
51
  }
58
- this.target.setDynamicProperty(propertyName, jsonString);
52
+ this.target.setDynamicProperty(databaseName, jsonString);
59
53
  }
60
54
  else {
61
55
  const chunkSize = DatabaseManager.DYNAMIC_PROP_MAX_LENGTH;
62
56
  const chunkCount = Math.ceil(jsonString.length / chunkSize);
63
57
  if (existingChunks > 0) {
64
58
  for (let i = 0; i < existingChunks; i++) {
65
- const oldPartName = `${propertyName}_${i}`;
59
+ const oldPartName = `${databaseName}_${i}`;
66
60
  this.target.setDynamicProperty(oldPartName, undefined);
67
61
  }
68
62
  }
@@ -70,11 +64,11 @@ class DatabaseManager {
70
64
  const start = i * chunkSize;
71
65
  const end = start + chunkSize;
72
66
  const chunk = jsonString.slice(start, end);
73
- const partName = `${propertyName}_${i}`;
67
+ const partName = `${databaseName}_${i}`;
74
68
  this.target.setDynamicProperty(partName, chunk);
75
69
  }
76
70
  const meta = { [DatabaseManager.CHUNK_KEY]: chunkCount };
77
- this.target.setDynamicProperty(propertyName, JSON.stringify(meta));
71
+ this.target.setDynamicProperty(databaseName, JSON.stringify(meta));
78
72
  }
79
73
  }
80
74
  /**
@@ -82,23 +76,20 @@ class DatabaseManager {
82
76
  * @param databaseName The name of the database.
83
77
  */
84
78
  removeJSONDatabase(databaseName) {
85
- if (!this.target)
86
- return;
87
- const propertyName = `${NAMESPACE}:${databaseName}`;
88
- const propString = this.target.getDynamicProperty(propertyName);
79
+ const propString = this.target.getDynamicProperty(databaseName);
89
80
  if (propString !== undefined) {
90
81
  try {
91
82
  const propObj = JSON.parse(propString);
92
83
  if (propObj && typeof propObj === "object" && DatabaseManager.CHUNK_KEY in propObj) {
93
84
  const chunkCount = propObj[DatabaseManager.CHUNK_KEY];
94
85
  for (let i = 0; i < chunkCount; i++) {
95
- const partName = `${propertyName}_${i}`;
86
+ const partName = `${databaseName}_${i}`;
96
87
  this.target.setDynamicProperty(partName, undefined);
97
88
  }
98
89
  }
99
90
  }
100
91
  catch { }
101
- this.target.setDynamicProperty(propertyName, undefined);
92
+ this.target.setDynamicProperty(databaseName, undefined);
102
93
  }
103
94
  }
104
95
  /**
@@ -108,10 +99,7 @@ class DatabaseManager {
108
99
  * @throws An error if the database does not exist.
109
100
  */
110
101
  getJSONDatabase(databaseName) {
111
- if (!this.target)
112
- return;
113
- const propertyName = `${NAMESPACE}:${databaseName}`;
114
- const propString = this.target.getDynamicProperty(propertyName);
102
+ const propString = this.target.getDynamicProperty(databaseName);
115
103
  if (propString === undefined) {
116
104
  throw new Error("Database does not exist");
117
105
  }
@@ -121,7 +109,7 @@ class DatabaseManager {
121
109
  const chunkCount = propObj[DatabaseManager.CHUNK_KEY];
122
110
  let combined = "";
123
111
  for (let i = 0; i < chunkCount; i++) {
124
- const partName = `${propertyName}_${i}`;
112
+ const partName = `${databaseName}_${i}`;
125
113
  const part = this.target.getDynamicProperty(partName);
126
114
  if (typeof part === "string") {
127
115
  combined += part;
@@ -160,9 +148,12 @@ class DatabaseManager {
160
148
  * return MyDatabase.instance;
161
149
  * }
162
150
  */
163
- export class SimpleDatabase {
151
+ class SimpleDatabase {
164
152
  mainDB;
165
153
  localDB;
154
+ pendingChanges = 0;
155
+ static SAVE_INTERVAL = 20 * 5;
156
+ static SAVE_THRESHOLD = 20;
166
157
  databaseName;
167
158
  /**
168
159
  * The constructor initializes the local database and syncs it with the main database.
@@ -170,22 +161,29 @@ export class SimpleDatabase {
170
161
  * @param target The target entity to store the database in. If undefined, the database is stored in the world.
171
162
  */
172
163
  constructor(databaseName, target) {
164
+ this.databaseName = `${getNamespace()}:${databaseName}`;
173
165
  this.mainDB = new DatabaseManager(target);
174
- this.databaseName = databaseName;
175
166
  if (this.mainDB.hasJSONDatabase(this.databaseName)) {
176
167
  this.localDB = this.getMainDB();
177
168
  }
178
169
  else {
179
170
  this.localDB = [];
180
- this.updateMainDB();
171
+ this.save();
181
172
  }
173
+ system.runTimeout(() => {
174
+ if (this.pendingChanges > SimpleDatabase.SAVE_THRESHOLD) {
175
+ this.save();
176
+ }
177
+ }, SimpleDatabase.SAVE_INTERVAL);
178
+ system.beforeEvents.shutdown.subscribe(() => {
179
+ system.run(() => this.save());
180
+ });
182
181
  }
183
182
  /**
184
- * Updates the main database with the local database.
185
- * This method is called automatically when an object is added, updated or removed.
186
- * @private
183
+ * Immediately saves the local database to the main database.
187
184
  */
188
- updateMainDB() {
185
+ save() {
186
+ this.pendingChanges = 0;
189
187
  this.mainDB.addJSONDatabase(this.databaseName, this.localDB);
190
188
  }
191
189
  /**
@@ -196,13 +194,16 @@ export class SimpleDatabase {
196
194
  getMainDB() {
197
195
  return this.mainDB.getJSONDatabase(this.databaseName);
198
196
  }
197
+ forceSave() {
198
+ this.save();
199
+ }
199
200
  /**
200
201
  * Adds an object to the local database and updates the main database.
201
202
  * @param object The object to be added.
202
203
  */
203
204
  addObject(object) {
204
205
  this.localDB.push(object);
205
- this.updateMainDB();
206
+ this.pendingChanges++;
206
207
  }
207
208
  /**
208
209
  * Updates an object in the local database and the main database.
@@ -221,7 +222,7 @@ export class SimpleDatabase {
221
222
  * @returns True if the object exists, false otherwise.
222
223
  */
223
224
  hasObject(id) {
224
- return this.localDB.map((object) => object.id).includes(id);
225
+ return this.localDB.find((object) => object.id === id) !== undefined;
225
226
  }
226
227
  /**
227
228
  * Retrieves an object with the given id from the local database.
@@ -229,7 +230,7 @@ export class SimpleDatabase {
229
230
  * @returns The object if it exists, undefined otherwise.
230
231
  */
231
232
  getObject(id) {
232
- return this.localDB.filter((object) => object.id === id)[0];
233
+ return this.localDB.find((object) => object.id === id);
233
234
  }
234
235
  /**
235
236
  * Removes an object with the given id from the local database and updates the main database.
@@ -237,7 +238,7 @@ export class SimpleDatabase {
237
238
  */
238
239
  removeObject(id) {
239
240
  this.localDB = this.localDB.filter((object) => object.id !== id);
240
- this.updateMainDB();
241
+ this.pendingChanges++;
241
242
  }
242
243
  /**
243
244
  * Retrieves all objects from the local database.
@@ -251,7 +252,7 @@ export class SimpleDatabase {
251
252
  */
252
253
  eraseAllObjects() {
253
254
  this.localDB = [];
254
- this.updateMainDB();
255
+ this.pendingChanges++;
255
256
  }
256
257
  /**
257
258
  * Iterates over all objects in the local database.
@@ -261,4 +262,5 @@ export class SimpleDatabase {
261
262
  this.localDB.forEach((object, index) => callback(object, index));
262
263
  }
263
264
  }
265
+ export { SimpleDatabase };
264
266
  //# sourceMappingURL=database.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,2 @@
1
- import { SimpleDatabase } from "./database";
2
- import { SimpleObject } from "./interfaces";
3
- export { SimpleDatabase, SimpleObject };
1
+ export { SimpleDatabase, SimpleObject } from "./database";
4
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -1,3 +1,2 @@
1
- import { SimpleDatabase } from "./database";
2
- export { SimpleDatabase };
1
+ export { SimpleDatabase } from "./database";
3
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { BranchDatabase } from "./database";
2
2
  import { Level } from "./level";
3
3
  import { levelState } from "./interfaces";
4
- import { NAMESPACE } from "./constants";
4
+ import { getNamespace } from "../constants";
5
5
  class BranchManager {
6
6
  branchDatabase = BranchDatabase.getInstance();
7
7
  levels = new Map();
@@ -40,7 +40,7 @@ class BranchManager {
40
40
  this.updateBranchState();
41
41
  }
42
42
  constructor(name) {
43
- this.identifier = `${NAMESPACE}:${name}`;
43
+ this.identifier = `${getNamespace()}:${name}`;
44
44
  this.getBranchState();
45
45
  }
46
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"branch.js","sourceRoot":"","sources":["../../src/game-state-machine/branch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branch.js","sourceRoot":"","sources":["../../src/game-state-machine/branch.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,20 @@
1
1
  import { PlayerObject, BranchObject } from "./interfaces";
2
- import { SimpleDatabase } from "../database";
3
- export declare class BranchDatabase extends SimpleDatabase<BranchObject> {
2
+ import { SimpleDatabase, SimpleObject } from "../database";
3
+ declare abstract class ForceSaveDatabase<T extends SimpleObject> extends SimpleDatabase<T> {
4
+ addObject(object: T): void;
5
+ updateObject(object: T): void;
6
+ removeObject(id: string): void;
7
+ eraseAllObjects(): void;
8
+ }
9
+ export declare class BranchDatabase extends ForceSaveDatabase<BranchObject> {
4
10
  protected static instance: BranchDatabase;
5
11
  private constructor();
6
12
  static getInstance(): BranchDatabase;
7
13
  }
8
- export declare class PlayerDatabase extends SimpleDatabase<PlayerObject> {
14
+ export declare class PlayerDatabase extends ForceSaveDatabase<PlayerObject> {
9
15
  protected static instance: PlayerDatabase;
10
16
  private constructor();
11
17
  static getInstance(): PlayerDatabase;
12
18
  }
19
+ export {};
13
20
  //# sourceMappingURL=database.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/game-state-machine/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,qBAAa,cAAe,SAAQ,cAAc,CAAC,YAAY,CAAC;IAC/D,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC;IAC1C,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,cAAc;CAMpC;AAED,qBAAa,cAAe,SAAQ,cAAc,CAAC,YAAY,CAAC;IAC/D,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC;IAC1C,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,cAAc;CAMpC"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/game-state-machine/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3D,uBAAe,iBAAiB,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACjF,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAK1B,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAK7B,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK9B,eAAe,IAAI,IAAI;CAIvB;AAED,qBAAa,cAAe,SAAQ,iBAAiB,CAAC,YAAY,CAAC;IAClE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC;IAC1C,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,cAAc;CAMpC;AAED,qBAAa,cAAe,SAAQ,iBAAiB,CAAC,YAAY,CAAC;IAClE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC;IAC1C,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,cAAc;CAMpC"}
@@ -1,5 +1,23 @@
1
1
  import { SimpleDatabase } from "../database";
2
- export class BranchDatabase extends SimpleDatabase {
2
+ class ForceSaveDatabase extends SimpleDatabase {
3
+ addObject(object) {
4
+ super.addObject(object);
5
+ this.forceSave();
6
+ }
7
+ updateObject(object) {
8
+ super.updateObject(object);
9
+ this.forceSave();
10
+ }
11
+ removeObject(id) {
12
+ super.removeObject(id);
13
+ this.forceSave();
14
+ }
15
+ eraseAllObjects() {
16
+ super.eraseAllObjects();
17
+ this.forceSave();
18
+ }
19
+ }
20
+ export class BranchDatabase extends ForceSaveDatabase {
3
21
  static instance;
4
22
  constructor() {
5
23
  super("branchDatabase", undefined);
@@ -11,7 +29,7 @@ export class BranchDatabase extends SimpleDatabase {
11
29
  return BranchDatabase.instance;
12
30
  }
13
31
  }
14
- export class PlayerDatabase extends SimpleDatabase {
32
+ export class PlayerDatabase extends ForceSaveDatabase {
15
33
  static instance;
16
34
  constructor() {
17
35
  super("playerDatabase", undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/game-state-machine/database.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,OAAO,cAAe,SAAQ,cAA4B;IACrD,MAAM,CAAC,QAAQ,CAAiB;IAC1C;QACC,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,WAAW;QACjB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC9B,cAAc,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,cAAc,CAAC,QAAQ,CAAC;IAChC,CAAC;CACD;AAED,MAAM,OAAO,cAAe,SAAQ,cAA4B;IACrD,MAAM,CAAC,QAAQ,CAAiB;IAC1C;QACC,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,WAAW;QACjB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC9B,cAAc,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,cAAc,CAAC,QAAQ,CAAC;IAChC,CAAC;CACD"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/game-state-machine/database.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAgB,MAAM,aAAa,CAAC;AAE3D,MAAe,iBAA0C,SAAQ,cAAiB;IACjF,SAAS,CAAC,MAAS;QAClB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,YAAY,CAAC,MAAS;QACrB,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,YAAY,CAAC,EAAU;QACtB,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,eAAe;QACd,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;CACD;AAED,MAAM,OAAO,cAAe,SAAQ,iBAA+B;IACxD,MAAM,CAAC,QAAQ,CAAiB;IAC1C;QACC,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,WAAW;QACjB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC9B,cAAc,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,cAAc,CAAC,QAAQ,CAAC;IAChC,CAAC;CACD;AAED,MAAM,OAAO,cAAe,SAAQ,iBAA+B;IACxD,MAAM,CAAC,QAAQ,CAAiB;IAC1C;QACC,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,WAAW;QACjB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC9B,cAAc,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,cAAc,CAAC,QAAQ,CAAC;IAChC,CAAC;CACD"}
@@ -1,3 +1,2 @@
1
- import { StateMachine } from "./stateMachine";
2
- export { StateMachine };
1
+ export { mainBranch, mainLevel0, stateMachine } from "./stateMachine";
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/game-state-machine/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/game-state-machine/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,3 +1,2 @@
1
- import { StateMachine } from "./stateMachine";
2
- export { StateMachine };
1
+ export { mainBranch, mainLevel0, stateMachine } from "./stateMachine";
3
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/game-state-machine/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/game-state-machine/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { Level } from "./level";
1
2
  import { Branch } from "./branch";
2
3
  declare class StateMachineEvents {
3
4
  resetFunctions: (() => void)[];
@@ -20,8 +21,6 @@ declare class StateMachine {
20
21
  private branches;
21
22
  private activeBranches;
22
23
  private defaultActiveBranches;
23
- defaultBranch: Branch | undefined;
24
- private constructor();
25
24
  /**
26
25
  * Debug function to display the branches' state in the action bar.
27
26
  */
@@ -43,13 +42,11 @@ declare class StateMachine {
43
42
  * @param branch The branch to deactivate.
44
43
  */
45
44
  deactivateBranch(branch: Branch): void;
46
- /**
47
- * Gets a branch by name.
48
- * @param name The branch name to get.
49
- * @returns The branch or undefined if not found.
50
- */
51
- getBranch(name: string): Branch | undefined;
52
45
  static getInstance(): StateMachine;
46
+ private constructor();
53
47
  }
54
- export { StateMachine };
48
+ export declare let stateMachine: StateMachine;
49
+ export declare let mainBranch: Branch;
50
+ export declare let mainLevel0: Level;
51
+ export {};
55
52
  //# sourceMappingURL=stateMachine.d.ts.map