packager.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. let plugin = new arm.Plugin();
  2. let h1 = new zui.Handle();
  3. plugin.drawUI = function(ui) {
  4. if (ui.panel(h1, "Packager")) {
  5. if (ui.button("Export")) {
  6. arm.UIFiles.show("", true, function(path) {
  7. var sep = arm.Path.sep;
  8. var sourceData = arm.Path.data();
  9. var dest = path + sep + arm.UIFiles.filename;
  10. var destData = dest + sep + "data";
  11. arm.File.createDirectory(dest);
  12. arm.File.createDirectory(destData);
  13. arm.File.copy(sourceData + sep + "player.bin", dest + sep + "krom.bin");
  14. var fileList = [
  15. "ammo.wasm.js", "ammo.wasm.wasm", "brdf.k",
  16. "clouds_base.raw", "clouds_detail.raw", "clouds_map.k",
  17. "deferred_light.arm", "font_default.ttf", "noise256.k",
  18. "Scene.arm", "shader_datas.arm", "smaa_area.k", "smaa_search.k",
  19. "water_base.k", "water_detail.k", "water_foam.k", "water_pass.arm",
  20. "World_irradiance.arm", "world_pass.arm", "World_radiance.k",
  21. "World_radiance_0.k", "World_radiance_1.k", "World_radiance_2.k",
  22. "World_radiance_3.k", "World_radiance_4.k", "World_radiance_5.k",
  23. "World_radiance_6.k", "World_radiance_7.k"];
  24. for (const file of fileList) {
  25. arm.File.copy(sourceData + sep + file, destData + sep + file);
  26. }
  27. var destExe = dest + sep + arm.UIFiles.filename;
  28. if (Krom.systemId() === "Windows") {
  29. destExe += ".exe";
  30. }
  31. var sourceExe = arm.Path.workingDir() + sep + Krom.getArg(0);
  32. arm.Log.trace(sourceExe);
  33. arm.Log.trace(destExe);
  34. arm.File.copy(sourceExe, destExe);
  35. });
  36. }
  37. }
  38. }