Browse Source

升级CocosCreator到3.8.6

mojunshou 1 year ago
parent
commit
10cc477dd2
89 changed files with 309 additions and 489 deletions
  1. 1 1
      build/android/assets/assets/bundle/import/0d/0d47ac538.json
  2. 1 1
      build/android/assets/assets/bundle/import/b7/b72ecbcc-11a4-4bd1-b346-b45b102efe60.json
  3. 1 1
      build/android/assets/assets/internal/import/09/0977efd1f.json
  4. 5 5
      build/android/assets/assets/main/index.js
  5. 57 35
      build/android/assets/jsb-adapter/engine-adapter.js
  6. 6 0
      build/android/assets/jsb-adapter/web-adapter.js
  7. 1 25
      build/android/assets/main.js
  8. 0 1
      build/android/assets/project.manifest
  9. 1 1
      build/android/assets/src/chunks/bundle.js
  10. 1 1
      build/android/assets/src/cocos-js/cc.js
  11. 1 1
      build/android/assets/src/settings.json
  12. 1 1
      build/android/cocos.compile.config.json
  13. 1 1
      build/android/data/assets/bundle/import/0d/0d47ac538.json
  14. 1 1
      build/android/data/assets/bundle/import/b7/b72ecbcc-11a4-4bd1-b346-b45b102efe60.json
  15. 1 1
      build/android/data/assets/internal/import/09/0977efd1f.json
  16. 5 5
      build/android/data/assets/main/index.js
  17. 57 35
      build/android/data/jsb-adapter/engine-adapter.js
  18. 6 0
      build/android/data/jsb-adapter/web-adapter.js
  19. 1 25
      build/android/data/main.js
  20. 0 1
      build/android/data/project.manifest
  21. 1 1
      build/android/data/src/chunks/bundle.js
  22. 1 1
      build/android/data/src/cocos-js/cc.js
  23. 1 1
      build/android/data/src/settings.json
  24. BIN
      build/android/proj/.gradle/8.0.2/checksums/checksums.lock
  25. BIN
      build/android/proj/.gradle/8.0.2/fileChanges/last-build.bin
  26. BIN
      build/android/proj/.gradle/8.0.2/fileHashes/fileHashes.lock
  27. 0 0
      build/android/proj/.gradle/8.0.2/gc.properties
  28. BIN
      build/android/proj/.gradle/8.5/checksums/checksums.lock
  29. BIN
      build/android/proj/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock
  30. 0 0
      build/android/proj/.gradle/8.5/dependencies-accessors/gc.properties
  31. BIN
      build/android/proj/.gradle/8.5/executionHistory/executionHistory.bin
  32. BIN
      build/android/proj/.gradle/8.5/executionHistory/executionHistory.lock
  33. BIN
      build/android/proj/.gradle/8.5/fileChanges/last-build.bin
  34. BIN
      build/android/proj/.gradle/8.5/fileHashes/fileHashes.bin
  35. BIN
      build/android/proj/.gradle/8.5/fileHashes/fileHashes.lock
  36. BIN
      build/android/proj/.gradle/8.5/fileHashes/resourceHashesCache.bin
  37. 0 0
      build/android/proj/.gradle/8.5/gc.properties
  38. BIN
      build/android/proj/.gradle/buildOutputCleanup/buildOutputCleanup.lock
  39. 0 2
      build/android/proj/.gradle/buildOutputCleanup/cache.properties
  40. BIN
      build/android/proj/.gradle/buildOutputCleanup/outputFiles.bin
  41. 0 2
      build/android/proj/.gradle/config.properties
  42. BIN
      build/android/proj/.gradle/file-system.probe
  43. 0 0
      build/android/proj/.gradle/vcs-1/gc.properties
  44. 4 2
      build/android/proj/cfg.cmake
  45. 2 2
      build/android/proj/gradle.properties
  46. BIN
      build/android/proj/gradle/wrapper/gradle-wrapper.jar
  47. 2 3
      build/android/proj/gradle/wrapper/gradle-wrapper.properties
  48. 113 198
      build/android/proj/gradlew
  49. 32 34
      build/android/proj/gradlew.bat
  50. 0 0
      build/android/proj/libservice/build/.transforms/41d9ccc4361c5d21d6aff5abafe5cb2d/results.bin
  51. 0 1
      build/android/proj/libservice/build/.transforms/ea703b99e8c2c84ef888f363ab43b08f/results.bin
  52. 0 7
      build/android/proj/libservice/build/.transforms/ea703b99e8c2c84ef888f363ab43b08f/transformed/out/AndroidManifest.xml
  53. 0 5
      build/android/proj/libservice/build/.transforms/ea703b99e8c2c84ef888f363ab43b08f/transformed/out/META-INF/com/android/build/gradle/aar-metadata.properties
  54. 0 0
      build/android/proj/libservice/build/.transforms/ea703b99e8c2c84ef888f363ab43b08f/transformed/out/R.txt
  55. BIN
      build/android/proj/libservice/build/.transforms/ea703b99e8c2c84ef888f363ab43b08f/transformed/out/jars/classes.jar
  56. BIN
      build/android/proj/libservice/build/.transforms/ea703b99e8c2c84ef888f363ab43b08f/transformed/out/jars/libs/R.jar
  57. 0 7
      build/android/proj/libservice/build/intermediates/aapt_friendly_merged_manifests/release/aapt/AndroidManifest.xml
  58. 0 18
      build/android/proj/libservice/build/intermediates/aapt_friendly_merged_manifests/release/aapt/output-metadata.json
  59. BIN
      build/android/proj/libservice/build/intermediates/aar_main_jar/release/classes.jar
  60. 0 5
      build/android/proj/libservice/build/intermediates/aar_metadata/release/aar-metadata.properties
  61. 0 1
      build/android/proj/libservice/build/intermediates/annotation_processor_list/release/annotationProcessors.json
  62. 0 0
      build/android/proj/libservice/build/intermediates/annotations_typedef_file/release/typedefs.txt
  63. BIN
      build/android/proj/libservice/build/intermediates/compile_library_classes_jar/release/classes.jar
  64. BIN
      build/android/proj/libservice/build/intermediates/compile_r_class_jar/release/R.jar
  65. 0 0
      build/android/proj/libservice/build/intermediates/compile_symbol_list/release/R.txt
  66. BIN
      build/android/proj/libservice/build/intermediates/full_jar/release/full.jar
  67. 0 2
      build/android/proj/libservice/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml
  68. 0 2
      build/android/proj/libservice/build/intermediates/incremental/mergeReleaseShaders/merger.xml
  69. 0 2
      build/android/proj/libservice/build/intermediates/incremental/packageReleaseAssets/merger.xml
  70. BIN
      build/android/proj/libservice/build/intermediates/incremental/release-mergeJavaRes/merge-state
  71. 0 1
      build/android/proj/libservice/build/intermediates/incremental/release/packageReleaseResources/compile-file-map.properties
  72. 0 2
      build/android/proj/libservice/build/intermediates/incremental/release/packageReleaseResources/merger.xml
  73. BIN
      build/android/proj/libservice/build/intermediates/javac/release/classes/com/cocos/service/SDKWrapper$1.class
  74. BIN
      build/android/proj/libservice/build/intermediates/javac/release/classes/com/cocos/service/SDKWrapper$SDKInterface.class
  75. BIN
      build/android/proj/libservice/build/intermediates/javac/release/classes/com/cocos/service/SDKWrapper$SDKWrapperInstance.class
  76. BIN
      build/android/proj/libservice/build/intermediates/javac/release/classes/com/cocos/service/SDKWrapper.class
  77. 0 2
      build/android/proj/libservice/build/intermediates/lint_model_metadata/release/lint-model-metadata.properties
  78. BIN
      build/android/proj/libservice/build/intermediates/local_aar_for_lint/release/out.aar
  79. 0 2
      build/android/proj/libservice/build/intermediates/local_only_symbol_list/release/R-def.txt
  80. 0 8
      build/android/proj/libservice/build/intermediates/manifest_merge_blame_file/release/manifest-merger-blame-release-report.txt
  81. BIN
      build/android/proj/libservice/build/intermediates/merged_java_res/release/feature-libservice.jar
  82. 0 7
      build/android/proj/libservice/build/intermediates/merged_manifest/release/AndroidManifest.xml
  83. 0 1
      build/android/proj/libservice/build/intermediates/navigation_json/release/navigation.json
  84. BIN
      build/android/proj/libservice/build/intermediates/runtime_library_classes_jar/release/classes.jar
  85. 0 1
      build/android/proj/libservice/build/intermediates/symbol_list_with_package_name/release/package-aware-r.txt
  86. 0 24
      build/android/proj/libservice/build/outputs/logs/manifest-merger-release-report.txt
  87. BIN
      build/android/proj/libservice/build/tmp/compileReleaseJavaWithJavac/previous-compilation-data.bin
  88. 4 2
      native/engine/common/CMakeLists.txt
  89. 1 1
      native/engine/common/cocos-version.json

File diff suppressed because it is too large
+ 1 - 1
build/android/assets/assets/bundle/import/0d/0d47ac538.json


File diff suppressed because it is too large
+ 1 - 1
build/android/assets/assets/bundle/import/b7/b72ecbcc-11a4-4bd1-b346-b45b102efe60.json


File diff suppressed because it is too large
+ 1 - 1
build/android/assets/assets/internal/import/09/0977efd1f.json


File diff suppressed because it is too large
+ 5 - 5
build/android/assets/assets/main/index.js


+ 57 - 35
build/android/assets/jsb-adapter/engine-adapter.js

@@ -3504,12 +3504,12 @@ const cacheManager = require('./jsb-cache-manager');
   spine.skeletonCacheMgr = skeletonCacheMgr;
   skeletonDataProto.destroy = function () {
     this.reset();
-    skeletonCacheMgr.removeSkeletonCache(this._uuid);
+    skeletonCacheMgr.removeSkeletonCache(this.mergedUUID());
     cc.Asset.prototype.destroy.call(this);
   };
   skeletonDataProto.reset = function () {
     if (this._skeletonCache) {
-      spine.disposeSkeletonData(this._uuid);
+      spine.disposeSkeletonData(this.mergedUUID());
       this._jsbTextures = null;
       this._skeletonCache = null;
     }
@@ -3523,7 +3523,7 @@ const cacheManager = require('./jsb-cache-manager');
   };
   skeletonDataProto.init = function () {
     if (this._skeletonCache) return;
-    const uuid = this._uuid;
+    const uuid = this.mergedUUID();
     if (!uuid) {
       cc.errorID(7504);
       return;
@@ -3598,9 +3598,7 @@ const cacheManager = require('./jsb-cache-manager');
   animation.setAnimationListener = function (target, callback) {
     this._target = target;
     this._callback = callback;
-
-    // eslint-disable-next-line no-undef
-    const AnimationEventType = legacyCC.internal.SpineAnimationEventType;
+    const AnimationEventType = cc.internal.SpineAnimationEventType;
     this.setStartListener(function (trackEntry) {
       if (this._target && this._callback) {
         this._callback.call(this._target, this, trackEntry, AnimationEventType.START, null, 0);
@@ -3702,12 +3700,16 @@ const cacheManager = require('./jsb-cache-manager');
       this.markForUpdateRenderData();
     }
   };
-  skeleton.setSkeletonData = function (skeletonData) {
+  skeleton._updateUITransform = function () {
+    const skeletonData = this._skeletonData;
+    if (!skeletonData) return;
     if (skeletonData.width != null && skeletonData.height != null) {
       const uiTrans = this.node._uiProps.uiTransformComp;
       uiTrans.setContentSize(skeletonData.width, skeletonData.height);
     }
-    const uuid = skeletonData._uuid;
+  };
+  skeleton.setSkeletonData = function (skeletonData) {
+    const uuid = skeletonData.mergedUUID();
     if (!uuid) {
       cc.errorID(7504);
       return;
@@ -3802,6 +3804,10 @@ const cacheManager = require('./jsb-cache-manager');
     middleware.release();
   };
   skeleton.setVertexEffectDelegate = function (effectDelegate) {
+    if (cc.internal.SPINE_VERSION === '4.2') {
+      cc.warn('setVertexEffectDelegate is deprecated since spine 4.2');
+      return;
+    }
     if (this._nativeSkeleton && !this.isAnimationCached()) {
       this._nativeSkeleton.setVertexEffectDelegate(effectDelegate);
     }
@@ -3874,6 +3880,7 @@ const cacheManager = require('./jsb-cache-manager');
     return null;
   };
   skeleton.setSkin = function (skinName) {
+    this._skinName = skinName;
     if (this._nativeSkeleton) return this._nativeSkeleton.setSkin(skinName);
     return null;
   };
@@ -4053,8 +4060,18 @@ const cacheManager = require('./jsb-cache-manager');
       this._updateSocketBindings();
       this.attachUtil.init(this);
       this._preCacheMode = this._cacheMode;
-      this.defaultSkin && this._nativeSkeleton.setSkin(this.defaultSkin);
-      this.animation = this.defaultAnimation;
+      if (this.defaultSkin && this.defaultSkin !== '') {
+        this.setSkin(this.defaultSkin);
+      } else if (this._skinName && this._skinName !== '') {
+        this.setSkin(this._skinName);
+      }
+      if (this.defaultAnimation) {
+        this.animation = this.defaultAnimation;
+      } else if (this._animationName) {
+        this.animation = this._animationName;
+      } else {
+        this.animation = '';
+      }
     } else if (this._nativeSkeleton) {
       this._nativeSkeleton.stopSchedule();
       this._nativeSkeleton._comp = null;
@@ -4066,6 +4083,7 @@ const cacheManager = require('./jsb-cache-manager');
   skeleton.onDestroy = function () {
     _onDestroy.call(this);
     if (this._nativeSkeleton) {
+      this._nativeSkeleton.setRenderEntity(null);
       this._nativeSkeleton.stopSchedule();
       this._nativeSkeleton._comp = null;
       this._nativeSkeleton = null;
@@ -4889,6 +4907,8 @@ if (cc.internal.VideoPlayer) {
 }
 
 },{}],15:[function(require,module,exports){
+"use strict";
+
 /****************************************************************************
  Copyright (c) 2017-2020 Xiamen Yaji Software Co., Ltd.
 
@@ -4914,17 +4934,15 @@ if (cc.internal.VideoPlayer) {
  THE SOFTWARE.
  ****************************************************************************/
 
-'use strict';
-
 if (cc.internal.WebView) {
   const {
     EventType
   } = cc.internal.WebView;
-  let vec3 = cc.Vec3;
-  let mat4 = cc.Mat4;
-  let _mat4_temp = new mat4();
-  let _topLeft = new vec3();
-  let _bottomRight = new vec3();
+  const Vec3 = cc.Vec3;
+  const Mat4 = cc.Mat4;
+  const _mat4_temp = new Mat4();
+  const _topLeft = new Vec3();
+  const _bottomRight = new Vec3();
   cc.internal.WebViewImplManager.getImpl = function (componenet) {
     return new WebViewImplJSB(componenet);
   };
@@ -4933,14 +4951,14 @@ if (cc.internal.WebView) {
       super(componenet);
       this.jsCallback = null;
       this.interfaceSchema = null;
-      this._matViewProj_temp = new mat4();
+      this._matViewProj_temp = new Mat4();
     }
     _bindEvent() {
-      let onLoaded = () => {
+      const onLoaded = () => {
         this._forceUpdate = true;
         this.dispatchEvent(EventType.LOADED);
       };
-      let onError = () => {
+      const onError = () => {
         this.dispatchEvent(EventType.ERROR);
       };
       this.webview.setOnDidFinishLoading(onLoaded);
@@ -4952,15 +4970,17 @@ if (cc.internal.WebView) {
       this.interfaceSchema = null;
     }
     createWebView() {
+      // eslint-disable-next-line no-undef
       if (!jsb.WebView) {
         console.warn('jsb.WebView is null');
         return;
       }
+      // eslint-disable-next-line no-undef
       this._webview = jsb.WebView.create();
       this._bindEvent();
     }
     removeWebView() {
-      let webview = this.webview;
+      const webview = this.webview;
       if (webview) {
         this.webview.destroy();
         this.reset();
@@ -4977,7 +4997,7 @@ if (cc.internal.WebView) {
       }
     }
     setOnJSCallback(callback) {
-      let webview = this.webview;
+      const webview = this.webview;
       if (webview) {
         webview.setOnJSCallback(callback);
       } else {
@@ -4985,7 +5005,7 @@ if (cc.internal.WebView) {
       }
     }
     setJavascriptInterfaceScheme(scheme) {
-      let webview = this.webview;
+      const webview = this.webview;
       if (webview) {
         webview.setJavascriptInterfaceScheme(scheme);
       } else {
@@ -4993,7 +5013,7 @@ if (cc.internal.WebView) {
       }
     }
     loadURL(url) {
-      let webview = this.webview;
+      const webview = this.webview;
       if (webview) {
         webview.src = url;
         webview.loadURL(url);
@@ -5001,10 +5021,11 @@ if (cc.internal.WebView) {
       }
     }
     evaluateJS(str) {
-      let webview = this.webview;
+      const webview = this.webview;
       if (webview) {
         return webview.evaluateJS(str);
       }
+      return null;
     }
     syncMatrix() {
       if (!this._webview || !this._component || !this._uiTrans) return;
@@ -5030,23 +5051,24 @@ if (cc.internal.WebView) {
       this._m13 = _mat4_temp.m13;
       this._w = width;
       this._h = height;
-      let canvas_width = cc.game.canvas.width;
-      let canvas_height = cc.game.canvas.height;
-      let ap = this._uiTrans.anchorPoint;
+
+      // const canvas_width = cc.game.canvas.width;
+      const canvasHeight = cc.game.canvas.height;
+      const ap = this._uiTrans.anchorPoint;
       // Vectors in node space
-      vec3.set(_topLeft, -ap.x * this._w, (1.0 - ap.y) * this._h, 0);
-      vec3.set(_bottomRight, (1 - ap.x) * this._w, -ap.y * this._h, 0);
+      Vec3.set(_topLeft, -ap.x * this._w, (1.0 - ap.y) * this._h, 0);
+      Vec3.set(_bottomRight, (1 - ap.x) * this._w, -ap.y * this._h, 0);
       // Convert to world space
-      vec3.transformMat4(_topLeft, _topLeft, _mat4_temp);
-      vec3.transformMat4(_bottomRight, _bottomRight, _mat4_temp);
+      Vec3.transformMat4(_topLeft, _topLeft, _mat4_temp);
+      Vec3.transformMat4(_bottomRight, _bottomRight, _mat4_temp);
       // need update camera data
       camera.update();
       // Convert to Screen space
       camera.worldToScreen(_topLeft, _topLeft);
       camera.worldToScreen(_bottomRight, _bottomRight);
-      let finalWidth = _bottomRight.x - _topLeft.x;
-      let finalHeight = _topLeft.y - _bottomRight.y;
-      this._webview.setFrame(_topLeft.x, canvas_height - _topLeft.y, finalWidth, finalHeight);
+      const finalWidth = _bottomRight.x - _topLeft.x;
+      const finalHeight = _topLeft.y - _bottomRight.y;
+      this._webview.setFrame(_topLeft.x, canvasHeight - _topLeft.y, finalWidth, finalHeight);
       this._forceUpdate = false;
     }
   }

+ 6 - 0
build/android/assets/jsb-adapter/web-adapter.js

@@ -1695,6 +1695,12 @@ class HTMLCanvasElement extends HTMLElement {
   requestPointerLock() {
     jsb.setCursorEnabled(false);
   }
+  _destroy() {
+    if (this._context2D) {
+      this._context2D._setCanvasBufferUpdatedCallback(null);
+      this._context2D = null;
+    }
+  }
 }
 module.exports = HTMLCanvasElement;
 

+ 1 - 25
build/android/assets/main.js

@@ -1,28 +1,4 @@
-// ---- 扩展注入热更新脚本开始 ----
-    jsb.fileUtils.addSearchPath(jsb.fileUtils.getWritablePath() + "oops_framework_remote", true);
-    var fileList = [];
-    var storagePath = "oops_framework_remote";
-    var tempPath = storagePath + "_temp/";
-    var baseOffset = tempPath.length;
-    
-    if (jsb.fileUtils.isDirectoryExist(tempPath) && !jsb.fileUtils.isFileExist(tempPath + 'project.manifest.temp')) {
-        jsb.fileUtils.listFilesRecursively(tempPath, fileList);
-        fileList.forEach(srcPath => {
-            var relativePath = srcPath.substr(baseOffset);
-            var dstPath = storagePath + relativePath;
-            if (srcPath[srcPath.length - 1] === "/") {
-                jsb.fileUtils.createDirectory(dstPath)
-            }
-            else {
-                if (jsb.fileUtils.isFileExist(dstPath)) {
-                    jsb.fileUtils.removeFile(dstPath)
-                }
-                jsb.fileUtils.renameFile(srcPath, dstPath);
-            }
-        })
-        jsb.fileUtils.removeDirectory(tempPath);
-    }
-// ---- 扩展注入热更新脚本结束 ----
+
 
 // SystemJS support.
 window.self = window;

File diff suppressed because it is too large
+ 0 - 1
build/android/assets/project.manifest


File diff suppressed because it is too large
+ 1 - 1
build/android/assets/src/chunks/bundle.js


File diff suppressed because it is too large
+ 1 - 1
build/android/assets/src/cocos-js/cc.js


File diff suppressed because it is too large
+ 1 - 1
build/android/assets/src/settings.json


File diff suppressed because it is too large
+ 1 - 1
build/android/cocos.compile.config.json


File diff suppressed because it is too large
+ 1 - 1
build/android/data/assets/bundle/import/0d/0d47ac538.json


File diff suppressed because it is too large
+ 1 - 1
build/android/data/assets/bundle/import/b7/b72ecbcc-11a4-4bd1-b346-b45b102efe60.json


File diff suppressed because it is too large
+ 1 - 1
build/android/data/assets/internal/import/09/0977efd1f.json


File diff suppressed because it is too large
+ 5 - 5
build/android/data/assets/main/index.js


+ 57 - 35
build/android/data/jsb-adapter/engine-adapter.js

@@ -3504,12 +3504,12 @@ const cacheManager = require('./jsb-cache-manager');
   spine.skeletonCacheMgr = skeletonCacheMgr;
   skeletonDataProto.destroy = function () {
     this.reset();
-    skeletonCacheMgr.removeSkeletonCache(this._uuid);
+    skeletonCacheMgr.removeSkeletonCache(this.mergedUUID());
     cc.Asset.prototype.destroy.call(this);
   };
   skeletonDataProto.reset = function () {
     if (this._skeletonCache) {
-      spine.disposeSkeletonData(this._uuid);
+      spine.disposeSkeletonData(this.mergedUUID());
       this._jsbTextures = null;
       this._skeletonCache = null;
     }
@@ -3523,7 +3523,7 @@ const cacheManager = require('./jsb-cache-manager');
   };
   skeletonDataProto.init = function () {
     if (this._skeletonCache) return;
-    const uuid = this._uuid;
+    const uuid = this.mergedUUID();
     if (!uuid) {
       cc.errorID(7504);
       return;
@@ -3598,9 +3598,7 @@ const cacheManager = require('./jsb-cache-manager');
   animation.setAnimationListener = function (target, callback) {
     this._target = target;
     this._callback = callback;
-
-    // eslint-disable-next-line no-undef
-    const AnimationEventType = legacyCC.internal.SpineAnimationEventType;
+    const AnimationEventType = cc.internal.SpineAnimationEventType;
     this.setStartListener(function (trackEntry) {
       if (this._target && this._callback) {
         this._callback.call(this._target, this, trackEntry, AnimationEventType.START, null, 0);
@@ -3702,12 +3700,16 @@ const cacheManager = require('./jsb-cache-manager');
       this.markForUpdateRenderData();
     }
   };
-  skeleton.setSkeletonData = function (skeletonData) {
+  skeleton._updateUITransform = function () {
+    const skeletonData = this._skeletonData;
+    if (!skeletonData) return;
     if (skeletonData.width != null && skeletonData.height != null) {
       const uiTrans = this.node._uiProps.uiTransformComp;
       uiTrans.setContentSize(skeletonData.width, skeletonData.height);
     }
-    const uuid = skeletonData._uuid;
+  };
+  skeleton.setSkeletonData = function (skeletonData) {
+    const uuid = skeletonData.mergedUUID();
     if (!uuid) {
       cc.errorID(7504);
       return;
@@ -3802,6 +3804,10 @@ const cacheManager = require('./jsb-cache-manager');
     middleware.release();
   };
   skeleton.setVertexEffectDelegate = function (effectDelegate) {
+    if (cc.internal.SPINE_VERSION === '4.2') {
+      cc.warn('setVertexEffectDelegate is deprecated since spine 4.2');
+      return;
+    }
     if (this._nativeSkeleton && !this.isAnimationCached()) {
       this._nativeSkeleton.setVertexEffectDelegate(effectDelegate);
     }
@@ -3874,6 +3880,7 @@ const cacheManager = require('./jsb-cache-manager');
     return null;
   };
   skeleton.setSkin = function (skinName) {
+    this._skinName = skinName;
     if (this._nativeSkeleton) return this._nativeSkeleton.setSkin(skinName);
     return null;
   };
@@ -4053,8 +4060,18 @@ const cacheManager = require('./jsb-cache-manager');
       this._updateSocketBindings();
       this.attachUtil.init(this);
       this._preCacheMode = this._cacheMode;
-      this.defaultSkin && this._nativeSkeleton.setSkin(this.defaultSkin);
-      this.animation = this.defaultAnimation;
+      if (this.defaultSkin && this.defaultSkin !== '') {
+        this.setSkin(this.defaultSkin);
+      } else if (this._skinName && this._skinName !== '') {
+        this.setSkin(this._skinName);
+      }
+      if (this.defaultAnimation) {
+        this.animation = this.defaultAnimation;
+      } else if (this._animationName) {
+        this.animation = this._animationName;
+      } else {
+        this.animation = '';
+      }
     } else if (this._nativeSkeleton) {
       this._nativeSkeleton.stopSchedule();
       this._nativeSkeleton._comp = null;
@@ -4066,6 +4083,7 @@ const cacheManager = require('./jsb-cache-manager');
   skeleton.onDestroy = function () {
     _onDestroy.call(this);
     if (this._nativeSkeleton) {
+      this._nativeSkeleton.setRenderEntity(null);
       this._nativeSkeleton.stopSchedule();
       this._nativeSkeleton._comp = null;
       this._nativeSkeleton = null;
@@ -4889,6 +4907,8 @@ if (cc.internal.VideoPlayer) {
 }
 
 },{}],15:[function(require,module,exports){
+"use strict";
+
 /****************************************************************************
  Copyright (c) 2017-2020 Xiamen Yaji Software Co., Ltd.
 
@@ -4914,17 +4934,15 @@ if (cc.internal.VideoPlayer) {
  THE SOFTWARE.
  ****************************************************************************/
 
-'use strict';
-
 if (cc.internal.WebView) {
   const {
     EventType
   } = cc.internal.WebView;
-  let vec3 = cc.Vec3;
-  let mat4 = cc.Mat4;
-  let _mat4_temp = new mat4();
-  let _topLeft = new vec3();
-  let _bottomRight = new vec3();
+  const Vec3 = cc.Vec3;
+  const Mat4 = cc.Mat4;
+  const _mat4_temp = new Mat4();
+  const _topLeft = new Vec3();
+  const _bottomRight = new Vec3();
   cc.internal.WebViewImplManager.getImpl = function (componenet) {
     return new WebViewImplJSB(componenet);
   };
@@ -4933,14 +4951,14 @@ if (cc.internal.WebView) {
       super(componenet);
       this.jsCallback = null;
       this.interfaceSchema = null;
-      this._matViewProj_temp = new mat4();
+      this._matViewProj_temp = new Mat4();
     }
     _bindEvent() {
-      let onLoaded = () => {
+      const onLoaded = () => {
         this._forceUpdate = true;
         this.dispatchEvent(EventType.LOADED);
       };
-      let onError = () => {
+      const onError = () => {
         this.dispatchEvent(EventType.ERROR);
       };
       this.webview.setOnDidFinishLoading(onLoaded);
@@ -4952,15 +4970,17 @@ if (cc.internal.WebView) {
       this.interfaceSchema = null;
     }
     createWebView() {
+      // eslint-disable-next-line no-undef
       if (!jsb.WebView) {
         console.warn('jsb.WebView is null');
         return;
       }
+      // eslint-disable-next-line no-undef
       this._webview = jsb.WebView.create();
       this._bindEvent();
     }
     removeWebView() {
-      let webview = this.webview;
+      const webview = this.webview;
       if (webview) {
         this.webview.destroy();
         this.reset();
@@ -4977,7 +4997,7 @@ if (cc.internal.WebView) {
       }
     }
     setOnJSCallback(callback) {
-      let webview = this.webview;
+      const webview = this.webview;
       if (webview) {
         webview.setOnJSCallback(callback);
       } else {
@@ -4985,7 +5005,7 @@ if (cc.internal.WebView) {
       }
     }
     setJavascriptInterfaceScheme(scheme) {
-      let webview = this.webview;
+      const webview = this.webview;
       if (webview) {
         webview.setJavascriptInterfaceScheme(scheme);
       } else {
@@ -4993,7 +5013,7 @@ if (cc.internal.WebView) {
       }
     }
     loadURL(url) {
-      let webview = this.webview;
+      const webview = this.webview;
       if (webview) {
         webview.src = url;
         webview.loadURL(url);
@@ -5001,10 +5021,11 @@ if (cc.internal.WebView) {
       }
     }
     evaluateJS(str) {
-      let webview = this.webview;
+      const webview = this.webview;
       if (webview) {
         return webview.evaluateJS(str);
       }
+      return null;
     }
     syncMatrix() {
       if (!this._webview || !this._component || !this._uiTrans) return;
@@ -5030,23 +5051,24 @@ if (cc.internal.WebView) {
       this._m13 = _mat4_temp.m13;
       this._w = width;
       this._h = height;
-      let canvas_width = cc.game.canvas.width;
-      let canvas_height = cc.game.canvas.height;
-      let ap = this._uiTrans.anchorPoint;
+
+      // const canvas_width = cc.game.canvas.width;
+      const canvasHeight = cc.game.canvas.height;
+      const ap = this._uiTrans.anchorPoint;
       // Vectors in node space
-      vec3.set(_topLeft, -ap.x * this._w, (1.0 - ap.y) * this._h, 0);
-      vec3.set(_bottomRight, (1 - ap.x) * this._w, -ap.y * this._h, 0);
+      Vec3.set(_topLeft, -ap.x * this._w, (1.0 - ap.y) * this._h, 0);
+      Vec3.set(_bottomRight, (1 - ap.x) * this._w, -ap.y * this._h, 0);
       // Convert to world space
-      vec3.transformMat4(_topLeft, _topLeft, _mat4_temp);
-      vec3.transformMat4(_bottomRight, _bottomRight, _mat4_temp);
+      Vec3.transformMat4(_topLeft, _topLeft, _mat4_temp);
+      Vec3.transformMat4(_bottomRight, _bottomRight, _mat4_temp);
       // need update camera data
       camera.update();
       // Convert to Screen space
       camera.worldToScreen(_topLeft, _topLeft);
       camera.worldToScreen(_bottomRight, _bottomRight);
-      let finalWidth = _bottomRight.x - _topLeft.x;
-      let finalHeight = _topLeft.y - _bottomRight.y;
-      this._webview.setFrame(_topLeft.x, canvas_height - _topLeft.y, finalWidth, finalHeight);
+      const finalWidth = _bottomRight.x - _topLeft.x;
+      const finalHeight = _topLeft.y - _bottomRight.y;
+      this._webview.setFrame(_topLeft.x, canvasHeight - _topLeft.y, finalWidth, finalHeight);
       this._forceUpdate = false;
     }
   }

+ 6 - 0
build/android/data/jsb-adapter/web-adapter.js

@@ -1695,6 +1695,12 @@ class HTMLCanvasElement extends HTMLElement {
   requestPointerLock() {
     jsb.setCursorEnabled(false);
   }
+  _destroy() {
+    if (this._context2D) {
+      this._context2D._setCanvasBufferUpdatedCallback(null);
+      this._context2D = null;
+    }
+  }
 }
 module.exports = HTMLCanvasElement;
 

+ 1 - 25
build/android/data/main.js

@@ -1,28 +1,4 @@
-// ---- 扩展注入热更新脚本开始 ----
-    jsb.fileUtils.addSearchPath(jsb.fileUtils.getWritablePath() + "oops_framework_remote", true);
-    var fileList = [];
-    var storagePath = "oops_framework_remote";
-    var tempPath = storagePath + "_temp/";
-    var baseOffset = tempPath.length;
-    
-    if (jsb.fileUtils.isDirectoryExist(tempPath) && !jsb.fileUtils.isFileExist(tempPath + 'project.manifest.temp')) {
-        jsb.fileUtils.listFilesRecursively(tempPath, fileList);
-        fileList.forEach(srcPath => {
-            var relativePath = srcPath.substr(baseOffset);
-            var dstPath = storagePath + relativePath;
-            if (srcPath[srcPath.length - 1] === "/") {
-                jsb.fileUtils.createDirectory(dstPath)
-            }
-            else {
-                if (jsb.fileUtils.isFileExist(dstPath)) {
-                    jsb.fileUtils.removeFile(dstPath)
-                }
-                jsb.fileUtils.renameFile(srcPath, dstPath);
-            }
-        })
-        jsb.fileUtils.removeDirectory(tempPath);
-    }
-// ---- 扩展注入热更新脚本结束 ----
+
 
 // SystemJS support.
 window.self = window;

File diff suppressed because it is too large
+ 0 - 1
build/android/data/project.manifest


File diff suppressed because it is too large
+ 1 - 1
build/android/data/src/chunks/bundle.js


File diff suppressed because it is too large
+ 1 - 1
build/android/data/src/cocos-js/cc.js


File diff suppressed because it is too large
+ 1 - 1
build/android/data/src/settings.json


BIN
build/android/proj/.gradle/8.0.2/checksums/checksums.lock


BIN
build/android/proj/.gradle/8.0.2/fileChanges/last-build.bin


BIN
build/android/proj/.gradle/8.0.2/fileHashes/fileHashes.lock


+ 0 - 0
build/android/proj/.gradle/8.0.2/gc.properties


BIN
build/android/proj/.gradle/8.5/checksums/checksums.lock


BIN
build/android/proj/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock


+ 0 - 0
build/android/proj/.gradle/8.5/dependencies-accessors/gc.properties


BIN
build/android/proj/.gradle/8.5/executionHistory/executionHistory.bin


BIN
build/android/proj/.gradle/8.5/executionHistory/executionHistory.lock


BIN
build/android/proj/.gradle/8.5/fileChanges/last-build.bin


BIN
build/android/proj/.gradle/8.5/fileHashes/fileHashes.bin


BIN
build/android/proj/.gradle/8.5/fileHashes/fileHashes.lock


BIN
build/android/proj/.gradle/8.5/fileHashes/resourceHashesCache.bin


+ 0 - 0
build/android/proj/.gradle/8.5/gc.properties


BIN
build/android/proj/.gradle/buildOutputCleanup/buildOutputCleanup.lock


+ 0 - 2
build/android/proj/.gradle/buildOutputCleanup/cache.properties

@@ -1,2 +0,0 @@
-#Wed Apr 02 15:46:10 CST 2025
-gradle.version=8.5

BIN
build/android/proj/.gradle/buildOutputCleanup/outputFiles.bin


+ 0 - 2
build/android/proj/.gradle/config.properties

@@ -1,2 +0,0 @@
-#Wed Apr 02 15:46:34 CST 2025
-java.home=C\:\\Program Files\\Android\\Android Studio\\jbr

BIN
build/android/proj/.gradle/file-system.probe


+ 0 - 0
build/android/proj/.gradle/vcs-1/gc.properties


+ 4 - 2
build/android/proj/cfg.cmake

@@ -5,11 +5,12 @@ set(NET_MODE 0)
 
 set(CC_ENABLE_SWAPPY OFF)
 set(APP_NAME "com-game-eliminate")
-set(COCOS_X_PATH "C:/ProgramData/cocos/editors/Creator/3.8.5/resources/resources/3d/engine/native")
+set(COCOS_X_PATH "C:/ProgramData/cocos/editors/Creator/3.8.6/resources/resources/3d/engine/native")
 set(USE_JOB_SYSTEM_TASKFLOW OFF)
 set(USE_JOB_SYSTEM_TBB OFF)
 set(ENABLE_FLOAT_OUTPUT OFF)
 set(USE_PHYSICS_PHYSX OFF)
+set(USE_BOX2D_JSB OFF)
 set(USE_OCCLUSION_QUERY OFF)
 set(USE_GEOMETRY_RENDERER OFF)
 set(USE_DEBUG_RENDERER OFF)
@@ -19,7 +20,8 @@ set(USE_WEBVIEW OFF)
 set(USE_SOCKET ON)
 set(USE_WEBSOCKET_SERVER OFF)
 set(USE_VENDOR OFF)
-set(USE_SPINE ON)
+set(USE_SPINE_3_8 ON)
+set(USE_SPINE_4_2 OFF)
 set(USE_DRAGONBONES ON)
 set(CC_USE_VULKAN OFF)
 set(USE_ADPF ON)

+ 2 - 2
build/android/proj/gradle.properties

@@ -50,7 +50,7 @@ PROP_NDK_PATH=D:\\Android\\Sdk\\ndk\\23.2.8568313
 PROP_IS_DEBUG=false
 
 # Cocos Engine Path
-COCOS_ENGINE_PATH=C:/ProgramData/cocos/editors/Creator/3.8.5/resources/resources/3d/engine/native
+COCOS_ENGINE_PATH=C:/ProgramData/cocos/editors/Creator/3.8.6/resources/resources/3d/engine/native
 
 # Res path
 RES_PATH=D:/Work/Eliminate/build/android
@@ -68,7 +68,7 @@ APPLICATION_ID=com.cocos.eliminate
 PROP_APP_ABI=arm64-v8a
 
 # fill in sign information for release mode
-RELEASE_STORE_FILE=C:/ProgramData/cocos/editors/Creator/3.8.5/resources/tools/keystore/debug.keystore
+RELEASE_STORE_FILE=C:/ProgramData/cocos/editors/Creator/3.8.6/resources/tools/keystore/debug.keystore
 RELEASE_STORE_PASSWORD=123456
 RELEASE_KEY_ALIAS=debug_keystore
 RELEASE_KEY_PASSWORD=123456

BIN
build/android/proj/gradle/wrapper/gradle-wrapper.jar


+ 2 - 3
build/android/proj/gradle/wrapper/gradle-wrapper.properties

@@ -1,7 +1,6 @@
+#Tue Apr 25 14:17:09 CST 2023
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
-networkTimeout=10000
-validateDistributionUrl=true
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists

+ 113 - 198
build/android/proj/gradlew

@@ -1,127 +1,79 @@
-#!/bin/sh
-
-#
-# Copyright © 2015-2021 the original authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
+#!/usr/bin/env bash
 
 ##############################################################################
-#
-#   Gradle start up script for POSIX generated by Gradle.
-#
-#   Important for running:
-#
-#   (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
-#       noncompliant, but you have some other compliant shell such as ksh or
-#       bash, then to run this script, type that shell name before the whole
-#       command line, like:
-#
-#           ksh Gradle
-#
-#       Busybox and similar reduced shells will NOT work, because this script
-#       requires all of these POSIX shell features:
-#         * functions;
-#         * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
-#           «${var#prefix}», «${var%suffix}», and «$( cmd )»;
-#         * compound commands having a testable exit status, especially «case»;
-#         * various built-in commands including «command», «set», and «ulimit».
-#
-#   Important for patching:
-#
-#   (2) This script targets any POSIX shell, so it avoids extensions provided
-#       by Bash, Ksh, etc; in particular arrays are avoided.
-#
-#       The "traditional" practice of packing multiple parameters into a
-#       space-separated string is a well documented source of bugs and security
-#       problems, so this is (mostly) avoided, by progressively accumulating
-#       options in "$@", and eventually passing that to Java.
-#
-#       Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
-#       and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
-#       see the in-line comments for details.
-#
-#       There are tweaks for specific operating systems such as AIX, CygWin,
-#       Darwin, MinGW, and NonStop.
-#
-#   (3) This script is generated from the Groovy template
-#       https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
-#       within the Gradle project.
-#
-#       You can find Gradle at https://github.com/gradle/gradle/.
-#
+##
+##  Gradle start up script for UN*X
+##
 ##############################################################################
 
-# Attempt to set APP_HOME
-
-# Resolve links: $0 may be a link
-app_path=$0
-
-# Need this for daisy-chained symlinks.
-while
-    APP_HOME=${app_path%"${app_path##*/}"}  # leaves a trailing /; empty if no leading path
-    [ -h "$app_path" ]
-do
-    ls=$( ls -ld "$app_path" )
-    link=${ls#*' -> '}
-    case $link in             #(
-      /*)   app_path=$link ;; #(
-      *)    app_path=$APP_HOME$link ;;
-    esac
-done
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
 
-# This is normally unused
-# shellcheck disable=SC2034
-APP_BASE_NAME=${0##*/}
-# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
-APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
 
 # Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD=maximum
+MAX_FD="maximum"
 
-warn () {
+warn ( ) {
     echo "$*"
-} >&2
+}
 
-die () {
+die ( ) {
     echo
     echo "$*"
     echo
     exit 1
-} >&2
+}
 
 # OS specific support (must be 'true' or 'false').
 cygwin=false
 msys=false
 darwin=false
-nonstop=false
-case "$( uname )" in                #(
-  CYGWIN* )         cygwin=true  ;; #(
-  Darwin* )         darwin=true  ;; #(
-  MSYS* | MINGW* )  msys=true    ;; #(
-  NONSTOP* )        nonstop=true ;;
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
 esac
 
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
 
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
 
 # Determine the Java command to use to start the JVM.
 if [ -n "$JAVA_HOME" ] ; then
     if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
         # IBM's JDK on AIX uses strange locations for the executables
-        JAVACMD=$JAVA_HOME/jre/sh/java
+        JAVACMD="$JAVA_HOME/jre/sh/java"
     else
-        JAVACMD=$JAVA_HOME/bin/java
+        JAVACMD="$JAVA_HOME/bin/java"
     fi
     if [ ! -x "$JAVACMD" ] ; then
         die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
@@ -130,120 +82,83 @@ Please set the JAVA_HOME variable in your environment to match the
 location of your Java installation."
     fi
 else
-    JAVACMD=java
-    if ! command -v java >/dev/null 2>&1
-    then
-        die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
 
 Please set the JAVA_HOME variable in your environment to match the
 location of your Java installation."
-    fi
 fi
 
 # Increase the maximum file descriptors if we can.
-if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
-    case $MAX_FD in #(
-      max*)
-        # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
-        # shellcheck disable=SC2039,SC3045
-        MAX_FD=$( ulimit -H -n ) ||
-            warn "Could not query maximum file descriptor limit"
-    esac
-    case $MAX_FD in  #(
-      '' | soft) :;; #(
-      *)
-        # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
-        # shellcheck disable=SC2039,SC3045
-        ulimit -n "$MAX_FD" ||
-            warn "Could not set maximum file descriptor limit to $MAX_FD"
-    esac
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
 fi
 
-# Collect all arguments for the java command, stacking in reverse order:
-#   * args from the command line
-#   * the main class name
-#   * -classpath
-#   * -D...appname settings
-#   * --module-path (only if needed)
-#   * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
-
-# For Cygwin or MSYS, switch paths to Windows format before running java
-if "$cygwin" || "$msys" ; then
-    APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
-    CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
-
-    JAVACMD=$( cygpath --unix "$JAVACMD" )
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
 
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
     # Now convert the arguments - kludge to limit ourselves to /bin/sh
-    for arg do
-        if
-            case $arg in                                #(
-              -*)   false ;;                            # don't mess with options #(
-              /?*)  t=${arg#/} t=/${t%%/*}              # looks like a POSIX filepath
-                    [ -e "$t" ] ;;                      #(
-              *)    false ;;
-            esac
-        then
-            arg=$( cygpath --path --ignore --mixed "$arg" )
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
         fi
-        # Roll the args list around exactly as many times as the number of
-        # args, so each arg winds up back in the position where it started, but
-        # possibly modified.
-        #
-        # NB: a `for` loop captures its iteration list before it begins, so
-        # changing the positional parameters here affects neither the number of
-        # iterations, nor the values presented in `arg`.
-        shift                   # remove old arg
-        set -- "$@" "$arg"      # push replacement arg
+        i=$((i+1))
     done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
 fi
 
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
 
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
-
-# Collect all arguments for the java command:
-#   * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
-#     and any embedded shellness will be escaped.
-#   * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
-#     treated as '${Hostname}' itself on the command line.
-
-set -- \
-        "-Dorg.gradle.appname=$APP_BASE_NAME" \
-        -classpath "$CLASSPATH" \
-        org.gradle.wrapper.GradleWrapperMain \
-        "$@"
-
-# Stop when "xargs" is not available.
-if ! command -v xargs >/dev/null 2>&1
-then
-    die "xargs is not available"
-fi
-
-# Use "xargs" to parse quoted args.
-#
-# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
-#
-# In Bash we could simply go:
-#
-#   readarray ARGS < <( xargs -n1 <<<"$var" ) &&
-#   set -- "${ARGS[@]}" "$@"
-#
-# but POSIX shell has neither arrays nor command substitution, so instead we
-# post-process each arg (as a line of input to sed) to backslash-escape any
-# character that might be a shell metacharacter, then use eval to reverse
-# that process (while maintaining the separation between arguments), and wrap
-# the whole thing up as a single "set" statement.
-#
-# This will of course break if any of these variables contains a newline or
-# an unmatched quote.
-#
-
-eval "set -- $(
-        printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
-        xargs -n1 |
-        sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
-        tr '\n' ' '
-    )" '"$@"'
-
-exec "$JAVACMD" "$@"
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

+ 32 - 34
build/android/proj/gradlew.bat

@@ -1,20 +1,4 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem      https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@if "%DEBUG%"=="" @echo off
+@if "%DEBUG%" == "" @echo off
 @rem ##########################################################################
 @rem
 @rem  Gradle startup script for Windows
@@ -24,24 +8,20 @@
 @rem Set local scope for the variables with windows NT shell
 if "%OS%"=="Windows_NT" setlocal
 
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
 set DIRNAME=%~dp0
-if "%DIRNAME%"=="" set DIRNAME=.
-@rem This is normally unused
+if "%DIRNAME%" == "" set DIRNAME=.
 set APP_BASE_NAME=%~n0
 set APP_HOME=%DIRNAME%
 
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
-
 @rem Find java.exe
 if defined JAVA_HOME goto findJavaFromJavaHome
 
 set JAVA_EXE=java.exe
 %JAVA_EXE% -version >NUL 2>&1
-if %ERRORLEVEL% equ 0 goto execute
+if "%ERRORLEVEL%" == "0" goto init
 
 echo.
 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -55,7 +35,7 @@ goto fail
 set JAVA_HOME=%JAVA_HOME:"=%
 set JAVA_EXE=%JAVA_HOME%/bin/java.exe
 
-if exist "%JAVA_EXE%" goto execute
+if exist "%JAVA_EXE%" goto init
 
 echo.
 echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@@ -65,26 +45,44 @@ echo location of your Java installation.
 
 goto fail
 
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
 :execute
 @rem Setup the command line
 
 set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
 
-
 @rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
 
 :end
 @rem End local scope for the variables with windows NT shell
-if %ERRORLEVEL% equ 0 goto mainEnd
+if "%ERRORLEVEL%"=="0" goto mainEnd
 
 :fail
 rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
 rem the _cmd.exe /c_ return code!
-set EXIT_CODE=%ERRORLEVEL%
-if %EXIT_CODE% equ 0 set EXIT_CODE=1
-if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
-exit /b %EXIT_CODE%
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
 
 :mainEnd
 if "%OS%"=="Windows_NT" endlocal

+ 0 - 0
build/android/proj/libservice/build/.transforms/41d9ccc4361c5d21d6aff5abafe5cb2d/results.bin


+ 0 - 1
build/android/proj/libservice/build/.transforms/ea703b99e8c2c84ef888f363ab43b08f/results.bin

@@ -1 +0,0 @@
-o/out

+ 0 - 7
build/android/proj/libservice/build/.transforms/ea703b99e8c2c84ef888f363ab43b08f/transformed/out/AndroidManifest.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.cocos.service" >
-
-    <uses-sdk android:minSdkVersion="21" />
-
-</manifest>

+ 0 - 5
build/android/proj/libservice/build/.transforms/ea703b99e8c2c84ef888f363ab43b08f/transformed/out/META-INF/com/android/build/gradle/aar-metadata.properties

@@ -1,5 +0,0 @@
-aarFormatVersion=1.0
-aarMetadataVersion=1.0
-minCompileSdk=1
-minCompileSdkExtension=0
-minAndroidGradlePluginVersion=1.0.0

+ 0 - 0
build/android/proj/libservice/build/.transforms/ea703b99e8c2c84ef888f363ab43b08f/transformed/out/R.txt


BIN
build/android/proj/libservice/build/.transforms/ea703b99e8c2c84ef888f363ab43b08f/transformed/out/jars/classes.jar


BIN
build/android/proj/libservice/build/.transforms/ea703b99e8c2c84ef888f363ab43b08f/transformed/out/jars/libs/R.jar


+ 0 - 7
build/android/proj/libservice/build/intermediates/aapt_friendly_merged_manifests/release/aapt/AndroidManifest.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.cocos.service" >
-
-    <uses-sdk android:minSdkVersion="21" />
-
-</manifest>

+ 0 - 18
build/android/proj/libservice/build/intermediates/aapt_friendly_merged_manifests/release/aapt/output-metadata.json

@@ -1,18 +0,0 @@
-{
-  "version": 3,
-  "artifactType": {
-    "type": "AAPT_FRIENDLY_MERGED_MANIFESTS",
-    "kind": "Directory"
-  },
-  "applicationId": "com.cocos.service",
-  "variantName": "release",
-  "elements": [
-    {
-      "type": "SINGLE",
-      "filters": [],
-      "attributes": [],
-      "outputFile": "AndroidManifest.xml"
-    }
-  ],
-  "elementType": "File"
-}

BIN
build/android/proj/libservice/build/intermediates/aar_main_jar/release/classes.jar


+ 0 - 5
build/android/proj/libservice/build/intermediates/aar_metadata/release/aar-metadata.properties

@@ -1,5 +0,0 @@
-aarFormatVersion=1.0
-aarMetadataVersion=1.0
-minCompileSdk=1
-minCompileSdkExtension=0
-minAndroidGradlePluginVersion=1.0.0

+ 0 - 1
build/android/proj/libservice/build/intermediates/annotation_processor_list/release/annotationProcessors.json

@@ -1 +0,0 @@
-{}

+ 0 - 0
build/android/proj/libservice/build/intermediates/annotations_typedef_file/release/typedefs.txt


BIN
build/android/proj/libservice/build/intermediates/compile_library_classes_jar/release/classes.jar


BIN
build/android/proj/libservice/build/intermediates/compile_r_class_jar/release/R.jar


+ 0 - 0
build/android/proj/libservice/build/intermediates/compile_symbol_list/release/R.txt


BIN
build/android/proj/libservice/build/intermediates/full_jar/release/full.jar


File diff suppressed because it is too large
+ 0 - 2
build/android/proj/libservice/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml


+ 0 - 2
build/android/proj/libservice/build/intermediates/incremental/mergeReleaseShaders/merger.xml

@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\Work\Eliminate\build\android\proj\libservice\src\main\shaders"/></dataSet><dataSet config="release" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\Work\Eliminate\build\android\proj\libservice\src\release\shaders"/></dataSet></merger>

File diff suppressed because it is too large
+ 0 - 2
build/android/proj/libservice/build/intermediates/incremental/packageReleaseAssets/merger.xml


BIN
build/android/proj/libservice/build/intermediates/incremental/release-mergeJavaRes/merge-state


+ 0 - 1
build/android/proj/libservice/build/intermediates/incremental/release/packageReleaseResources/compile-file-map.properties

@@ -1 +0,0 @@
-#Wed Apr 02 15:46:41 CST 2025

File diff suppressed because it is too large
+ 0 - 2
build/android/proj/libservice/build/intermediates/incremental/release/packageReleaseResources/merger.xml


BIN
build/android/proj/libservice/build/intermediates/javac/release/classes/com/cocos/service/SDKWrapper$1.class


BIN
build/android/proj/libservice/build/intermediates/javac/release/classes/com/cocos/service/SDKWrapper$SDKInterface.class


BIN
build/android/proj/libservice/build/intermediates/javac/release/classes/com/cocos/service/SDKWrapper$SDKWrapperInstance.class


BIN
build/android/proj/libservice/build/intermediates/javac/release/classes/com/cocos/service/SDKWrapper.class


+ 0 - 2
build/android/proj/libservice/build/intermediates/lint_model_metadata/release/lint-model-metadata.properties

@@ -1,2 +0,0 @@
-mavenArtifactId=libservice
-mavenGroupId=com-game-eliminate

BIN
build/android/proj/libservice/build/intermediates/local_aar_for_lint/release/out.aar


+ 0 - 2
build/android/proj/libservice/build/intermediates/local_only_symbol_list/release/R-def.txt

@@ -1,2 +0,0 @@
-R_DEF: Internal format may change without notice
-local

+ 0 - 8
build/android/proj/libservice/build/intermediates/manifest_merge_blame_file/release/manifest-merger-blame-release-report.txt

@@ -1,8 +0,0 @@
-1<?xml version="1.0" encoding="utf-8"?>
-2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-3    package="com.cocos.service" >
-4
-5    <uses-sdk android:minSdkVersion="21" />
-5-->D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml
-6
-7</manifest>

BIN
build/android/proj/libservice/build/intermediates/merged_java_res/release/feature-libservice.jar


+ 0 - 7
build/android/proj/libservice/build/intermediates/merged_manifest/release/AndroidManifest.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.cocos.service" >
-
-    <uses-sdk android:minSdkVersion="21" />
-
-</manifest>

+ 0 - 1
build/android/proj/libservice/build/intermediates/navigation_json/release/navigation.json

@@ -1 +0,0 @@
-[]

BIN
build/android/proj/libservice/build/intermediates/runtime_library_classes_jar/release/classes.jar


+ 0 - 1
build/android/proj/libservice/build/intermediates/symbol_list_with_package_name/release/package-aware-r.txt

@@ -1 +0,0 @@
-com.cocos.service

+ 0 - 24
build/android/proj/libservice/build/outputs/logs/manifest-merger-release-report.txt

@@ -1,25 +0,0 @@
-manifest
-ADDED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml:1:1-3:12
-INJECTED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml:1:1-3:12
-INJECTED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml:1:1-3:12
-	package
-		INJECTED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml
-		ADDED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml:1:1-3:12
-		INJECTED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml
-	xmlns:android
-		ADDED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml:1:11-69
-uses-sdk
-INJECTED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml reason: use-sdk injection requested
-INJECTED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml
-INJECTED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml
-INJECTED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml
-INJECTED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml
-	android:targetSdkVersion
-		INJECTED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml
-		ADDED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml
-		INJECTED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml
-	android:minSdkVersion
-		INJECTED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml
-		ADDED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml
-		INJECTED from D:\Work\Eliminate\build\android\proj\libservice\AndroidManifest.xml

BIN
build/android/proj/libservice/build/tmp/compileReleaseJavaWithJavac/previous-compilation-data.bin


+ 4 - 2
native/engine/common/CMakeLists.txt

@@ -9,17 +9,19 @@ set(TARGET_IOS_VERSION "11.0"  CACHE STRING "Target iOS version" FORCE)
 set(CMAKE_CXX_STANDARD 17)
 option(CC_DEBUG_FORCE           "Force enable CC_DEBUG in release mode" OFF)
 option(USE_SE_V8                "Use V8 JavaScript Engine"              ON)
+option(USE_SE_JSVM              "Use JSVM JavaScript Engine"            OFF)
+option(USE_SE_JSC               "Use JavaScriptCore on MacOSX/iOS"      OFF)
 option(USE_V8_DEBUGGER          "Compile v8 inspector ws server"        ON)
 option(USE_V8_DEBUGGER_FORCE    "Force enable debugger in release mode" OFF)
 option(USE_SOCKET               "Enable WebSocket & SocketIO"           ON)
 option(USE_AUDIO                "Enable Audio"                          ON)     #Enable AudioEngine
 option(USE_EDIT_BOX             "Enable EditBox"                        ON)
-option(USE_SE_JSC               "Use JavaScriptCore on MacOSX/iOS"      OFF)
 option(USE_VIDEO                "Enable VideoPlayer Component"          ON)
 option(USE_WEBVIEW              "Enable WebView Component"              ON)
 option(USE_MIDDLEWARE           "Enable Middleware"                     ON)
 option(USE_DRAGONBONES          "Enable Dragonbones"                    ON)
-option(USE_SPINE                "Enable Spine"                          ON)
+option(USE_SPINE_3_8            "Enable Spine 3.8"                      ON)
+option(USE_SPINE_4_2            "Enable Spine 4.2"                      OFF)
 option(USE_WEBSOCKET_SERVER     "Enable WebSocket Server"               OFF)
 option(USE_JOB_SYSTEM_TASKFLOW  "Use taskflow as job system backend"    OFF)
 option(USE_JOB_SYSTEM_TBB       "Use tbb as job system backend"         OFF)

+ 1 - 1
native/engine/common/cocos-version.json

@@ -1 +1 @@
-{"version":"3.8.5","skipCheck":false}
+{"version":"3.8.6","skipCheck":false}