melonjs 16.0.0 → 16.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
- package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
- package/dist/melonjs.mjs/_virtual/howler.js +1 -1
- package/dist/melonjs.mjs/_virtual/index.js +1 -1
- package/dist/melonjs.mjs/application/application.js +1 -1
- package/dist/melonjs.mjs/application/header.js +1 -1
- package/dist/melonjs.mjs/application/resize.js +1 -1
- package/dist/melonjs.mjs/application/settings.js +1 -1
- package/dist/melonjs.mjs/audio/audio.js +4 -2
- package/dist/melonjs.mjs/camera/camera2d.js +1 -1
- package/dist/melonjs.mjs/const.js +1 -1
- package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
- package/dist/melonjs.mjs/geometries/line.js +1 -1
- package/dist/melonjs.mjs/geometries/path2d.js +1 -1
- package/dist/melonjs.mjs/geometries/point.js +1 -1
- package/dist/melonjs.mjs/geometries/poly.js +1 -1
- package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
- package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
- package/dist/melonjs.mjs/geometries/toarccanvas.js +1 -1
- package/dist/melonjs.mjs/index.js +2 -2
- package/dist/melonjs.mjs/input/gamepad.js +1 -1
- package/dist/melonjs.mjs/input/input.js +1 -1
- package/dist/melonjs.mjs/input/keyboard.js +1 -1
- package/dist/melonjs.mjs/input/pointer.js +1 -1
- package/dist/melonjs.mjs/input/pointerevent.js +1 -1
- package/dist/melonjs.mjs/lang/console.js +1 -1
- package/dist/melonjs.mjs/lang/deprecated.js +1 -1
- package/dist/melonjs.mjs/level/level.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +1 -1
- package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
- package/dist/melonjs.mjs/loader/cache.js +5 -2
- package/dist/melonjs.mjs/loader/loader.js +58 -9
- package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/binary.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/fetchdata.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/fontface.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/image.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/json.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/script.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/tmx.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/video.js +99 -0
- package/dist/melonjs.mjs/loader/settings.js +5 -4
- package/dist/melonjs.mjs/math/color.js +1 -1
- package/dist/melonjs.mjs/math/math.js +1 -1
- package/dist/melonjs.mjs/math/matrix2.js +1 -1
- package/dist/melonjs.mjs/math/matrix3.js +1 -1
- package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
- package/dist/melonjs.mjs/math/observable_vector3.js +1 -1
- package/dist/melonjs.mjs/math/vector2.js +1 -1
- package/dist/melonjs.mjs/math/vector3.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
- package/dist/melonjs.mjs/particles/emitter.js +1 -1
- package/dist/melonjs.mjs/particles/particle.js +1 -1
- package/dist/melonjs.mjs/particles/settings.js +1 -1
- package/dist/melonjs.mjs/physics/body.js +1 -1
- package/dist/melonjs.mjs/physics/bounds.js +1 -1
- package/dist/melonjs.mjs/physics/collision.js +1 -1
- package/dist/melonjs.mjs/physics/detector.js +1 -1
- package/dist/melonjs.mjs/physics/quadtree.js +1 -1
- package/dist/melonjs.mjs/physics/response.js +1 -1
- package/dist/melonjs.mjs/physics/sat.js +1 -1
- package/dist/melonjs.mjs/physics/world.js +1 -1
- package/dist/melonjs.mjs/plugin/plugin.js +3 -3
- package/dist/melonjs.mjs/renderable/collectable.js +1 -1
- package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
- package/dist/melonjs.mjs/renderable/container.js +1 -1
- package/dist/melonjs.mjs/renderable/draggable.js +1 -1
- package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
- package/dist/melonjs.mjs/renderable/entity/entity.js +1 -1
- package/dist/melonjs.mjs/renderable/imagelayer.js +1 -1
- package/dist/melonjs.mjs/renderable/light2d.js +1 -1
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -5
- package/dist/melonjs.mjs/renderable/renderable.js +1 -1
- package/dist/melonjs.mjs/renderable/sprite.js +135 -80
- package/dist/melonjs.mjs/renderable/text/bitmaptext.js +1 -1
- package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +1 -1
- package/dist/melonjs.mjs/renderable/text/glyph.js +1 -1
- package/dist/melonjs.mjs/renderable/text/text.js +1 -1
- package/dist/melonjs.mjs/renderable/text/textmetrics.js +1 -1
- package/dist/melonjs.mjs/renderable/text/textstyle.js +1 -1
- package/dist/melonjs.mjs/renderable/trigger.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
- package/dist/melonjs.mjs/state/stage.js +1 -1
- package/dist/melonjs.mjs/state/state.js +1 -1
- package/dist/melonjs.mjs/system/device.js +45 -2
- package/dist/melonjs.mjs/system/dom.js +1 -1
- package/dist/melonjs.mjs/system/event.js +1 -1
- package/dist/melonjs.mjs/system/platform.js +1 -1
- package/dist/melonjs.mjs/system/pooling.js +1 -1
- package/dist/melonjs.mjs/system/save.js +1 -1
- package/dist/melonjs.mjs/system/timer.js +1 -1
- package/dist/melonjs.mjs/tweens/easing.js +1 -1
- package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
- package/dist/melonjs.mjs/tweens/tween.js +1 -1
- package/dist/melonjs.mjs/utils/agent.js +1 -1
- package/dist/melonjs.mjs/utils/array.js +1 -1
- package/dist/melonjs.mjs/utils/file.js +1 -1
- package/dist/melonjs.mjs/utils/function.js +1 -1
- package/dist/melonjs.mjs/utils/string.js +1 -1
- package/dist/melonjs.mjs/utils/utils.js +1 -1
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +1 -1
- package/dist/melonjs.mjs/video/renderer.js +1 -1
- package/dist/melonjs.mjs/video/texture/atlas.js +1 -1
- package/dist/melonjs.mjs/video/texture/cache.js +4 -4
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +1 -1
- package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
- package/dist/melonjs.mjs/video/video.js +1 -1
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +1 -1
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +1 -1
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +4 -3
- package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +4 -3
- package/dist/melonjs.module.js +340 -104
- package/dist/types/loader/cache.d.ts +1 -0
- package/dist/types/loader/loader.d.ts +37 -8
- package/dist/types/loader/parsers/video.d.ts +9 -0
- package/dist/types/loader/settings.d.ts +3 -3
- package/dist/types/renderable/nineslicesprite.d.ts +12 -0
- package/dist/types/renderable/sprite.d.ts +41 -40
- package/dist/types/system/device.d.ts +16 -0
- package/dist/types/video/webgl/compositors/quad_compositor.d.ts +2 -1
- package/package.json +3 -3
- package/src/audio/audio.js +3 -1
- package/src/loader/cache.js +3 -0
- package/src/loader/loader.js +57 -7
- package/src/loader/parsers/video.js +90 -0
- package/src/loader/settings.js +4 -3
- package/src/renderable/nineslicesprite.js +0 -4
- package/src/renderable/sprite.js +134 -79
- package/src/system/device.js +43 -0
- package/src/video/texture/cache.js +3 -3
- package/src/video/webgl/compositors/quad_compositor.js +3 -2
- package/src/video/webgl/webgl_renderer.js +3 -2
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* melonJS Game Engine - v16.1.1
|
|
3
|
+
* http://www.melonjs.org
|
|
4
|
+
* melonjs is licensed under the MIT License.
|
|
5
|
+
* http://www.opensource.org/licenses/mit-license
|
|
6
|
+
* @copyright (C) 2011 - 2024 Olivier Biot (AltByte Pte Ltd)
|
|
7
|
+
*/
|
|
8
|
+
import { videoList } from '../cache.js';
|
|
9
|
+
import { fetchData } from './fetchdata.js';
|
|
10
|
+
import { hasVideoFormat } from '../../system/device.js';
|
|
11
|
+
import { getExtension } from '../../utils/file.js';
|
|
12
|
+
import { crossOrigin } from '../settings.js';
|
|
13
|
+
import { isDataUrl } from '../../utils/string.js';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* parse/preload a Video file
|
|
17
|
+
* @param {loader.Asset} data - asset data
|
|
18
|
+
* @param {Function} [onload] - function to be called when the asset is loaded
|
|
19
|
+
* @param {Function} [onerror] - function to be called in case of error
|
|
20
|
+
* @returns {number} the amount of corresponding resource parsed/preloaded
|
|
21
|
+
* @ignore
|
|
22
|
+
*/
|
|
23
|
+
function preloadVideo(data, onload, onerror) {
|
|
24
|
+
|
|
25
|
+
if (typeof videoList[data.name] !== "undefined") {
|
|
26
|
+
// Video already preloaded
|
|
27
|
+
return 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
let videoElement = videoList[data.name] = document.createElement("video");
|
|
31
|
+
|
|
32
|
+
if (isDataUrl(data.src)) {
|
|
33
|
+
const mimeType = data.src.match(/[^:]\w+\/[\w-+\d.]+(?=;|,)/)[0];
|
|
34
|
+
if (!mimeType || videoElement.canPlayType(mimeType) === "") {
|
|
35
|
+
throw new Error(`Invalid dataURL or Video file format not supported: ${mimeType}`);
|
|
36
|
+
}
|
|
37
|
+
} else {
|
|
38
|
+
if (!hasVideoFormat(getExtension(data.src))) {
|
|
39
|
+
throw new Error(`Video file format not supported: ${getExtension(data.src)}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (isDataUrl(data.src)) {
|
|
44
|
+
fetchData(data.src, "blob")
|
|
45
|
+
.then(blob => {
|
|
46
|
+
videoElement.src = globalThis.URL.createObjectURL(blob);
|
|
47
|
+
})
|
|
48
|
+
.catch(error => {
|
|
49
|
+
if (typeof onerror === "function") {
|
|
50
|
+
onerror(error);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
} else {
|
|
54
|
+
// just a url path
|
|
55
|
+
videoElement.src = data.src;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
videoElement.setAttribute("preload", data.stream === true ? "metadata" : "auto");
|
|
59
|
+
videoElement.setAttribute("playsinline", "true");
|
|
60
|
+
videoElement.setAttribute("disablePictureInPicture", "true");
|
|
61
|
+
videoElement.setAttribute("controls", "false");
|
|
62
|
+
videoElement.setAttribute("crossorigin", crossOrigin);
|
|
63
|
+
|
|
64
|
+
if (data.autoplay === true) {
|
|
65
|
+
videoElement.setAttribute("autoplay", "true");
|
|
66
|
+
}
|
|
67
|
+
if (data.loop === true) {
|
|
68
|
+
videoElement.setAttribute("loop", "true");
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (typeof onload === "function") {
|
|
72
|
+
// some mobile browser (e.g. safari) won't emit the canplay event if autoplay is disabled
|
|
73
|
+
if (data.stream === true || data.autoplay === false) {
|
|
74
|
+
videoElement.onloadedmetadata = () => {
|
|
75
|
+
if (typeof onload === "function") {
|
|
76
|
+
onload();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
} else {
|
|
80
|
+
videoElement.oncanplay = () => {
|
|
81
|
+
if (typeof onload === "function") {
|
|
82
|
+
onload();
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (typeof onerror === "function") {
|
|
89
|
+
videoElement.onerror = () => {
|
|
90
|
+
onerror();
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
videoElement.load();
|
|
95
|
+
|
|
96
|
+
return 1;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export { preloadVideo };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v16.
|
|
2
|
+
* melonJS Game Engine - v16.1.1
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -13,7 +13,7 @@ let baseURL = {};
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
* crossOrigin attribute to configure the CORS requests for Image data element.
|
|
16
|
+
* crossOrigin attribute to configure the CORS requests for Image and Video data element.
|
|
17
17
|
* By default (that is, when the attribute is not specified), CORS is not used at all.
|
|
18
18
|
* The "anonymous" keyword means that there will be no exchange of user credentials via cookies,
|
|
19
19
|
* client-side SSL certificates or HTTP authentication as described in the Terminology section of the CORS specification.<br>
|
|
@@ -23,7 +23,7 @@ let baseURL = {};
|
|
|
23
23
|
* @memberof loader
|
|
24
24
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes
|
|
25
25
|
* @example
|
|
26
|
-
* // allow for cross-origin texture loading
|
|
26
|
+
* // allow for cross-origin texture loading
|
|
27
27
|
* me.loader.crossOrigin = "anonymous";
|
|
28
28
|
*
|
|
29
29
|
* // set all ressources to be loaded
|
|
@@ -63,7 +63,7 @@ function setNocache(enable = false) {
|
|
|
63
63
|
* @name setBaseURL
|
|
64
64
|
* @memberof loader
|
|
65
65
|
* @public
|
|
66
|
-
* @param {string} type - "*", "audio", binary", "image", "json", "js", "tmx", "tsx"
|
|
66
|
+
* @param {string} type - "*", "audio", "video", "binary", "image", "json", "js", "tmx", "tsx"
|
|
67
67
|
* @param {string} [url="./"] - default base URL
|
|
68
68
|
* @example
|
|
69
69
|
* // change the base URL relative address for audio assets
|
|
@@ -77,6 +77,7 @@ function setBaseURL(type, url) {
|
|
|
77
77
|
} else {
|
|
78
78
|
// "wildcards"
|
|
79
79
|
baseURL["audio"] = url;
|
|
80
|
+
baseURL["video"] = url;
|
|
80
81
|
baseURL["binary"] = url;
|
|
81
82
|
baseURL["image"] = url;
|
|
82
83
|
baseURL["json"] = url;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v16.
|
|
2
|
+
* melonJS Game Engine - v16.1.1
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -37,9 +37,9 @@ class BasePlugin {
|
|
|
37
37
|
* define the minimum required version of melonJS<br>
|
|
38
38
|
* this can be overridden by the plugin
|
|
39
39
|
* @type {string}
|
|
40
|
-
* @default "16.
|
|
40
|
+
* @default "16.1.1"
|
|
41
41
|
*/
|
|
42
|
-
this.version = "16.
|
|
42
|
+
this.version = "16.1.1";
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
45
|
* a reference to the app/game that registered this plugin
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v16.
|
|
2
|
+
* melonJS Game Engine - v16.1.1
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -64,9 +64,7 @@ class NineSliceSprite extends Sprite {
|
|
|
64
64
|
|
|
65
65
|
/**
|
|
66
66
|
* width of the NineSliceSprite
|
|
67
|
-
* @public
|
|
68
67
|
* @type {number}
|
|
69
|
-
* @name width
|
|
70
68
|
*/
|
|
71
69
|
get width() {
|
|
72
70
|
return super.width;
|
|
@@ -77,9 +75,7 @@ class NineSliceSprite extends Sprite {
|
|
|
77
75
|
|
|
78
76
|
/**
|
|
79
77
|
* height of the NineSliceSprite
|
|
80
|
-
* @public
|
|
81
78
|
* @type {number}
|
|
82
|
-
* @name height
|
|
83
79
|
*/
|
|
84
80
|
get height() {
|
|
85
81
|
return super.height;
|