@needle-tools/engine 3.0.0-alpha → 3.0.0-alpha.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.
@@ -1,5 +1,5 @@
1
1
  import { InternalUsageTrackerPlugin } from "./extensions/usage_tracker";
2
- import { Bone, BufferAttribute, BufferGeometry, InterleavedBufferAttribute, Material, Mesh, Object3D, Skeleton, SkinnedMesh, Texture, WebGLRenderer } from "three";
2
+ import { Bone, BufferAttribute, BufferGeometry, InterleavedBufferAttribute, Material, Mesh, Object3D, Skeleton, SkinnedMesh, Texture } from "three";
3
3
  import { addPatch } from "./engine_patcher";
4
4
  import { getParam } from "./engine_utils";
5
5
  export class AssetDatabase {
@@ -244,22 +244,18 @@ function updateUsers(symbol, user, object, added) {
244
244
  object[symbol] = users;
245
245
  }
246
246
  // We dont want to update users during rendering
247
- const $renderMethod = Symbol("render-method");
248
- Object.defineProperty(WebGLRenderer.prototype, "render", {
249
- set: function (value) {
250
- this[$renderMethod] = wrapMethod(value);
251
- },
252
- get: function () {
253
- return this[$renderMethod];
254
- }
255
- });
256
- function wrapMethod(fn) {
257
- return function (...args) {
258
- noUpdateScope++;
259
- const result = fn.apply(this, args);
260
- noUpdateScope--;
261
- return result;
262
- };
247
+ try {
248
+ // addPatch(WebGLRenderer.prototype, "render",
249
+ // () => {
250
+ // noUpdateScope++;
251
+ // },
252
+ // () => {
253
+ // noUpdateScope--;
254
+ // }
255
+ // );
256
+ }
257
+ catch (e) {
258
+ console.warn("Could not wrap WebGLRenderer.render", e);
263
259
  }
264
260
  // addGltfLoadEventListener(GltfLoadEventType.BeforeLoad, (_) => {
265
261
  // noUpdateScope++;
@@ -273,4 +269,15 @@ function wrapMethod(fn) {
273
269
  // if(obj instanceof Mesh) {
274
270
  // }
275
271
  // });
272
+ // class MyObject {
273
+ // myNumber: number = 1;
274
+ // }
275
+ // addPatch(MyObject.prototype, "myNumber", (obj, oldValue, newValue) => {
276
+ // console.log("myNumber changed", oldValue, newValue);
277
+ // });
278
+ // const i = new MyObject();
279
+ // setInterval(() => {
280
+ // console.log("RUN");
281
+ // i.myNumber += 1;
282
+ // }, 1000);
276
283
  //# sourceMappingURL=engine_assetdatabase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine_assetdatabase.js","sourceRoot":"","sources":["../../src/engine/engine_assetdatabase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_assetdatabase.js","sourceRoot":"","sources":["../../src/engine/engine_assetdatabase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,cAAc,EAAqB,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAiB,MAAM,OAAO,CAAC;AACtL,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,OAAO,aAAa;IACtB;QACI,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,KAA4B,EAAE,EAAE;YAC3E,IAAI,KAAK,CAAC,gBAAgB;gBAAE,OAAO;YACnC,MAAM,SAAS,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;YACtC,IAAI,SAAS,EAAE;gBACX,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;oBACpC,OAAO,CAAC,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBACrD,KAAK,CAAC,cAAc,EAAE,CAAC;iBAC1B;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAED,MAAM,eAAe,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAE/C,SAAS,WAAW;IAChB,OAAO,eAAe,KAAK,SAAS,CAAC;AACzC,CAAC;AAED,gDAAgD;AAChD,IAAI,kBAAkB,GAAG,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,KAAK,IAAI,eAAe,KAAK,CAAC,CAAC;AAE7G,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACpD,kBAAkB,GAAG,OAAO,CAAC;AACjC,CAAC;AACD,MAAM,UAAU,sBAAsB;IAClC,OAAO,kBAAkB,CAAC;AAC9B,CAAC;AAGD,6FAA6F;AAC7F,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO;IAEjB,IAAI,GAAG,YAAY,WAAW,EAAE;QAC5B,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KACxC;SACI,IAAI,GAAG,YAAY,IAAI,EAAE;QAC1B,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KACxC;SACI,IAAI,GAAG,YAAY,cAAc,EAAE;QACpC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAClC,sBAAsB,CAAC,KAAK,CAAC,CAAC;SACjC;KACJ;SACI,IAAI,GAAG,YAAY,eAAe,IAAI,GAAG,YAAY,0BAA0B,EAAE;QAClF,oCAAoC;QACpC,kDAAkD;QAClD,uEAAuE;KAC1E;SACI,IAAI,GAAG,aAAY,KAAe,CAAA,EAAE;QACrC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE;YACrB,IAAI,KAAK;gBACL,sBAAsB,CAAC,KAAK,CAAC,CAAC;SACrC;KACJ;SACI,IAAI,GAAG,YAAY,QAAQ,EAAE;QAC9B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAChC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,KAAK,YAAY,OAAO;gBACxB,sBAAsB,CAAC,KAAK,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC;KACb;SACI,IAAI,GAAG,YAAY,OAAO,EAAE;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,YAAY,WAAW,EAAE;YACzC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACzB;KACJ;SACI,IAAI,GAAG,YAAY,QAAQ,EAAE;QAC9B,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;KACzB;SACI,IAAI,GAAG,YAAY,IAAI,EAAE;KAE7B;SACI;QACD,IAAI,CAAC,CAAC,GAAG,YAAY,QAAQ,CAAC,IAAI,KAAK;YACnC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;KAChD;AACL,CAAC;AAED,SAAS,IAAI,CAAC,GAAQ;IAClB,IAAI,KAAK,IAAI,WAAW,EAAE,IAAI,eAAe;QAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC5E,IAAI,CAAC,GAAG,EAAE;QACN,OAAO;KACV;IACD,IAAI,GAAG,YAAY,WAAW,EAAE;QAC5B,GAAG,CAAC,KAAK,EAAE,CAAC;KACf;SACI;QACD,GAAG,CAAC,OAAO,EAAE,CAAC;KACjB;AACL,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,GAAa;IACzD,IAAI,GAAG,YAAY,IAAI,IAAI,GAAG,YAAY,WAAW,EAAE;QACnD,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;QACpB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;KACvB;AACL,CAAC;AAED,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;AAItC;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,SAAkB,EAAE,YAA2C,IAAI,EAAE,GAAiB;IAC5H,IAAI,CAAC,GAAG,EAAE;QACN,GAAG,GAAG,WAAW,CAAC;QAClB,GAAG,CAAC,KAAK,EAAE,CAAC;KACf;IACD,IAAI,CAAC,MAAM;QAAE,OAAO,GAAG,CAAC;IACxB,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAgB,CAAC;IACrD,IAAI,KAAK,EAAE;QACP,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,gDAAgD;YAChD,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC5B,mBAAmB;YACnB,IAAI,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK;gBAAE,SAAS;YACpD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACd,IAAI,SAAS;gBACT,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;SAC7C;KACJ;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACvC,OAAO,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACxC,CAAC;AAID,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAErC,sCAAsC;AACtC,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAC/C,MAAM,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAE1D,SAAS,gBAAgB,CAAC,SAAS,EAAE,SAAS;IAC1C,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QACvD,IAAI,kBAAkB,EAAE;YACpB,WAAW,CAAC,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACnD,WAAW,CAAC,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;SACrD;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,gDAAgD;AAChD,wDAAwD;AACxD,4CAA4C;AAC5C,8BAA8B;AAC9B,2CAA2C;AAC3C,8EAA8E;AAC9E,IAAI;AAGJ,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAC7C,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAC7C,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC5C,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAChD,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACjD,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAClD,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AACxD,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACrD,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACrD,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACpD,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACpD,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC/C,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACjD,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC9C,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACpD,kDAAkD;AAGlD,mBAAmB;AACnB,gDAAgD;AAChD,UAAU;AAGV,uBAAuB;AAGvB,SAAS,SAAS,CAAC,GAAW;IAC1B,IAAI,kBAAkB,KAAK,KAAK;QAAE,OAAO;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAgB,CAAC;IAClD,IAAI,KAAK,EAAE;QACP,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,WAAW,CAAC,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;SAClD;KACJ;AACL,CAAC;AAED,SAAS,YAAY,CAAC,SAAS,EAAE,UAAkB;IAC/C,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;QACzC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAM5C,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB,oFAAoF;AACpF,SAAS,WAAW,CAAC,MAAc,EAAE,IAAY,EAAE,MAAyB,EAAE,KAAc;IAExF,mDAAmD;IACnD,IAAI,aAAa,GAAG,CAAC;QAAE,OAAO;IAE9B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACvB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;YACpB,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;SACvC;QACD,OAAO;KACV;IACD,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;IAC9B,IAAI,KAAK,EAAE;QACP,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC1B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChB,IAAI,KAAK,GAAG,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC9C,KAAK,IAAI,CAAC,CAAC;YACX,MAAM,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC;YACrC,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;SACzG;KACJ;SAAM;QACH,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACzB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,KAAK,GAAG,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX,KAAK,IAAI,CAAC,CAAC;gBACX,MAAM,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC;aACxC;YACD,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACxG,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBAC/C,IAAI,eAAe;wBACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACvE,IAAI,WAAW,EAAE;wBACb,sBAAsB,CAAC,MAAM,CAAC,CAAC;iBACtC;aACJ;SACJ;KACJ;IACD,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAC3B,CAAC;AAKD,gDAAgD;AAGhD,IAAI;IAEA,8CAA8C;IAC9C,cAAc;IACd,2BAA2B;IAC3B,SAAS;IACT,cAAc;IACd,2BAA2B;IAC3B,QAAQ;IACR,KAAK;CACR;AACD,OAAO,CAAC,EAAE;IACN,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;CAC1D;AAGD,kEAAkE;AAClE,uBAAuB;AACvB,MAAM;AACN,mEAAmE;AACnE,uBAAuB;AACvB,MAAM;AAKN,2DAA2D;AAC3D,MAAM;AAGN,8DAA8D;AAC9D,gCAAgC;AAChC,QAAQ;AACR,MAAM;AAMN,mBAAmB;AACnB,4BAA4B;AAC5B,IAAI;AAEJ,0EAA0E;AAC1E,2DAA2D;AAC3D,MAAM;AAEN,4BAA4B;AAC5B,sBAAsB;AACtB,0BAA0B;AAC1B,uBAAuB;AACvB,cAAc"}
@@ -1,8 +1,9 @@
1
- export declare type FieldPatch = (instance: object, oldValue: any, newValue: any) => any;
2
- export type MethodPatch<T> = (instance: T, result: any, ...args: any[]) => any;
1
+ export type Prefix = (...args: any[]) => any;
2
+ export type Postfix = (...args: any[]) => any;
3
3
  /**
4
4
  * Use patcher for patching properties insteadof calling Object.defineProperty individually
5
5
  * since this will cause conflicts if multiple patches need to be applied to the same property
6
6
  */
7
- export declare function addPatch<TType extends object, TCallback extends (FieldPatch | MethodPatch<any>)>(prototype: TType, fieldName: string, cb: TCallback): void;
7
+ export declare function addPatch<T extends object>(prototype: T, fieldName: string, beforeCallback?: Prefix, afterCallback?: Postfix): void;
8
8
  export declare function removePatch(prototype: object, fieldName: string, cb: Function): void;
9
+ export declare const NeedlePatchesKey = "Needle:Patches";
@@ -4,55 +4,53 @@ const _wrappedMethods = new WeakSet();
4
4
  * Use patcher for patching properties insteadof calling Object.defineProperty individually
5
5
  * since this will cause conflicts if multiple patches need to be applied to the same property
6
6
  */
7
- export function addPatch(prototype, fieldName, cb) {
7
+ export function addPatch(prototype, fieldName, beforeCallback, afterCallback) {
8
+ // TODO
9
+ return;
8
10
  // TODO: we probably want to turn this into a symbol to prevent anyone from overriding it
9
11
  // But when we need to store the symbol per prototype to allow e.g. material disposing to iterate those and dispose all
10
- const backingField = fieldName + "__needle"; // Symbol(fieldName);// + " (patched)";
11
- internalAddPatch(prototype, fieldName, cb);
12
+ const backingField = Symbol(fieldName + "__needle"); // Symbol(fieldName);// + " (patched)";
13
+ internalAddPatch(prototype, fieldName, afterCallback, beforeCallback);
12
14
  const desc = Object.getOwnPropertyDescriptor(prototype, fieldName);
15
+ const existing = prototype[fieldName];
16
+ console.log(prototype);
13
17
  if (desc) {
14
- // TODO: check if the property is writable
15
- // the property might be a method in which case we want to wrap it
16
- if (typeof desc.value === "function") {
17
- const method = desc.value;
18
- if (method) {
19
- if (_wrappedMethods.has(method)) {
20
- return;
21
- }
22
- _wrappedMethods.add(method);
23
- prototype[fieldName] = function (...args) {
24
- // call the original method
25
- const result = method.apply(this, args);
26
- // call the patches
27
- const patches = getPatches(prototype, fieldName);
28
- if (patches) {
29
- for (const patch of patches) {
30
- patch(this, result, ...args);
31
- }
32
- }
33
- return result;
34
- };
35
- }
36
- else {
37
- // TODO: declare method?
38
- }
39
- }
40
- }
41
- else if (prototype.hasOwnProperty(backingField)) {
42
18
  }
43
19
  else {
44
20
  Object.defineProperty(prototype, fieldName, {
45
21
  set: function (value) {
46
- const prev = this[backingField];
47
- this[backingField] = value;
48
- executePatches(prototype, fieldName, this, prev, value);
22
+ console.log("setting", fieldName, value);
23
+ if (typeof value === "function") {
24
+ this[backingField] = addWrapper(value, prototype, fieldName);
25
+ }
26
+ else {
27
+ const prev = this[backingField];
28
+ executePrefixes(prototype, fieldName, this, prev, value);
29
+ this[backingField] = value;
30
+ executePostFixes(prototype, fieldName, this, prev, value);
31
+ }
49
32
  },
50
33
  get: function () {
51
- return this[backingField];
34
+ console.log("GET", fieldName);
35
+ const value = this[backingField];
36
+ if (typeof value === "function") {
37
+ if (value[backingField]) {
38
+ return value[backingField];
39
+ }
40
+ }
41
+ return value;
52
42
  }
53
43
  });
54
44
  }
55
45
  }
46
+ function addWrapper(originalFunction, prototype, fieldname) {
47
+ return function (...args) {
48
+ executePrefixes(prototype, fieldname, this, ...args);
49
+ const result = originalFunction.apply(this, args);
50
+ executePostFixes(prototype, fieldname, this, result, ...args);
51
+ return result;
52
+ };
53
+ }
56
54
  export function removePatch(prototype, fieldName, cb) {
57
55
  const patches = getPatches(prototype, fieldName);
58
56
  if (patches) {
@@ -63,35 +61,54 @@ export function removePatch(prototype, fieldName, cb) {
63
61
  }
64
62
  }
65
63
  }
66
- const patches = new WeakMap();
64
+ export const NeedlePatchesKey = "Needle:Patches";
65
+ function patches() {
66
+ if (!globalThis[NeedlePatchesKey]) {
67
+ globalThis[NeedlePatchesKey] = new WeakMap();
68
+ }
69
+ return globalThis[NeedlePatchesKey];
70
+ }
67
71
  function getPatches(prototype, fieldName) {
68
- let patchesMap = patches.get(prototype);
72
+ let patchesMap = patches().get(prototype);
69
73
  if (!patchesMap) {
70
74
  return null;
71
75
  }
72
76
  return patchesMap.get(fieldName);
73
77
  ;
74
78
  }
75
- function internalAddPatch(prototype, fieldName, cb) {
76
- let patchesMap = patches.get(prototype);
79
+ function internalAddPatch(prototype, fieldName, postfix, prefix) {
80
+ let patchesMap = patches().get(prototype);
77
81
  if (!patchesMap) {
78
82
  patchesMap = new Map();
79
- patches.set(prototype, patchesMap);
83
+ patches().set(prototype, patchesMap);
80
84
  }
81
85
  let patchList = patchesMap.get(fieldName);
82
86
  if (!patchList) {
83
87
  patchList = [];
84
88
  patchesMap.set(fieldName, patchList);
85
89
  }
86
- patchList.push(cb);
90
+ patchList.push({
91
+ prefix: prefix,
92
+ postfix: postfix
93
+ });
94
+ }
95
+ function executePrefixes(prototype, fieldName, instance, ...args) {
96
+ if (!instance)
97
+ return;
98
+ const patches = getPatches(prototype, fieldName);
99
+ if (patches) {
100
+ for (const patchInfo of patches) {
101
+ patchInfo.prefix?.call(instance, ...args);
102
+ }
103
+ }
87
104
  }
88
- function executePatches(prototype, fieldName, instance, oldValue, newValue) {
105
+ function executePostFixes(prototype, fieldName, instance, result, ...args) {
89
106
  if (!instance)
90
107
  return;
91
108
  const patches = getPatches(prototype, fieldName);
92
109
  if (patches) {
93
- for (const patch of patches) {
94
- patch(instance, oldValue, newValue);
110
+ for (const patchInfo of patches) {
111
+ patchInfo.postfix?.call(instance, result, ...args);
95
112
  }
96
113
  }
97
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine_patcher.js","sourceRoot":"","sources":["../../src/engine/engine_patcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_patcher.js","sourceRoot":"","sources":["../../src/engine/engine_patcher.ts"],"names":[],"mappings":"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"}