melonjs 16.1.3 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- 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/_virtual/re.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 +5 -5
- 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 +3 -3
- 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 +1 -1
- package/dist/melonjs.mjs/loader/loader.js +127 -5
- 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 +4 -3
- package/dist/melonjs.mjs/loader/parsers/fetchdata.js +7 -7
- package/dist/melonjs.mjs/loader/parsers/fontface.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/image.js +5 -4
- package/dist/melonjs.mjs/loader/parsers/json.js +5 -4
- package/dist/melonjs.mjs/loader/parsers/script.js +7 -3
- package/dist/melonjs.mjs/loader/parsers/tmx.js +5 -4
- package/dist/melonjs.mjs/loader/parsers/video.js +7 -7
- package/dist/melonjs.mjs/math/color.js +1 -1
- package/dist/melonjs.mjs/math/math.js +2 -31
- 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/node_modules/semver/classes/comparator.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/classes/range.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/classes/semver.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/clean.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/cmp.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/coerce.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/compare-build.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/compare-loose.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/compare.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/diff.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/eq.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/gt.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/gte.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/inc.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/lt.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/lte.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/major.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/minor.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/neq.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/parse.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/patch.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/prerelease.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/rcompare.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/rsort.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/satisfies.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/sort.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/valid.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/constants.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/debug.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/identifiers.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/parse-options.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/re.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/node_modules/lru-cache/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/iterator.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/yallist.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/gtr.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/intersects.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/ltr.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/max-satisfying.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/min-satisfying.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/min-version.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/outside.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/simplify.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/subset.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/to-comparators.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/valid.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 -1
- package/dist/melonjs.mjs/renderable/renderable.js +1 -1
- package/dist/melonjs.mjs/renderable/sprite.js +8 -1
- 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 +3 -109
- 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 +83 -160
- package/dist/melonjs.mjs/video/texture/cache.js +1 -1
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +1 -1
- package/dist/melonjs.mjs/video/texture/parser/aseprite.js +78 -0
- package/dist/melonjs.mjs/video/texture/parser/spritesheet.js +77 -0
- package/dist/melonjs.mjs/video/texture/parser/texturepacker.js +64 -0
- 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 +1 -1
- 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 +1 -1
- package/dist/melonjs.module.js +486 -456
- package/dist/types/audio/audio.d.ts +2 -1
- package/dist/types/loader/loader.d.ts +85 -1
- package/dist/types/loader/parsers/binary.d.ts +2 -1
- package/dist/types/loader/parsers/fetchdata.d.ts +3 -1
- package/dist/types/loader/parsers/image.d.ts +2 -1
- package/dist/types/loader/parsers/json.d.ts +3 -2
- package/dist/types/loader/parsers/script.d.ts +3 -2
- package/dist/types/loader/parsers/tmx.d.ts +3 -2
- package/dist/types/loader/parsers/video.d.ts +3 -2
- package/dist/types/math/math.d.ts +1 -30
- package/dist/types/system/device.d.ts +1 -107
- package/dist/types/video/texture/atlas.d.ts +9 -13
- package/dist/types/video/texture/parser/aseprite.d.ts +8 -0
- package/dist/types/video/texture/parser/spritesheet.d.ts +8 -0
- package/dist/types/video/texture/parser/texturepacker.d.ts +8 -0
- package/package.json +14 -13
- package/src/audio/audio.js +4 -4
- package/src/loader/loader.js +119 -5
- package/src/loader/parsers/binary.js +3 -2
- package/src/loader/parsers/fetchdata.js +6 -6
- package/src/loader/parsers/image.js +4 -3
- package/src/loader/parsers/json.js +4 -3
- package/src/loader/parsers/script.js +4 -5
- package/src/loader/parsers/tmx.js +4 -3
- package/src/loader/parsers/video.js +6 -6
- package/src/math/math.js +1 -30
- package/src/renderable/sprite.js +7 -0
- package/src/system/device.js +2 -108
- package/src/video/texture/atlas.js +81 -158
- package/src/video/texture/parser/aseprite.js +69 -0
- package/src/video/texture/parser/spritesheet.js +68 -0
- package/src/video/texture/parser/texturepacker.js +55 -0
- package/dist/melonjs.mjs/loader/settings.js +0 -92
- package/dist/types/loader/settings.d.ts +0 -57
- package/src/loader/settings.js +0 -86
package/README.md
CHANGED
|
@@ -87,11 +87,11 @@ melonJS is supporting the below tools and frameworks natively or through our off
|
|
|
87
87
|
[](https://renderhjs.net/shoebox/)
|
|
88
88
|
[](https://www.mapeditor.org)
|
|
89
89
|
[](https://cordova.apache.org)
|
|
90
|
-
|
|
90
|
+
[](http://esotericsoftware.com)
|
|
91
|
+
[](https://www.aseprite.org)
|
|
91
92
|
|
|
92
93
|
Tools integration and usage with melonJS is documented in our [Wiki](https://github.com/melonjs/melonJS/wiki#third-party-tools-usage).
|
|
93
94
|
|
|
94
|
-
|
|
95
95
|
# Using melonJS
|
|
96
96
|
|
|
97
97
|
### For your first time using melonJS, this is where you start
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine -
|
|
2
|
+
* melonJS Game Engine - v17.0.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import '../node_modules/howler/dist/howler.js';
|
|
9
9
|
import { clamp } from '../math/math.js';
|
|
10
|
-
import { nocache, withCredentials } from '../loader/settings.js';
|
|
11
10
|
import { isDataUrl } from '../utils/string.js';
|
|
12
11
|
import { __exports as howler } from '../_virtual/howler.js';
|
|
13
12
|
|
|
@@ -140,9 +139,10 @@ function disable() {
|
|
|
140
139
|
* @param {loader.Asset} sound
|
|
141
140
|
* @param {Function} [onloadcb] - function to be called when the resource is loaded
|
|
142
141
|
* @param {Function} [onerrorcb] - function to be called in case of error
|
|
142
|
+
* @param {Object} [settings] - custom settings to apply to the request (@link https://developer.mozilla.org/en-US/docs/Web/API/fetch#options)
|
|
143
143
|
* @returns {number} the amount of asset loaded (always 1 if successfull)
|
|
144
144
|
*/
|
|
145
|
-
function load(sound, onloadcb, onerrorcb) {
|
|
145
|
+
function load(sound, onloadcb, onerrorcb, settings = {}) {
|
|
146
146
|
let urls = [];
|
|
147
147
|
if (audioExts.length === 0) {
|
|
148
148
|
throw new Error("target audio extension(s) should be set through me.audio.init() before calling the preloader.");
|
|
@@ -151,7 +151,7 @@ function load(sound, onloadcb, onerrorcb) {
|
|
|
151
151
|
urls.push(sound.src);
|
|
152
152
|
} else {
|
|
153
153
|
for (let i = 0; i < audioExts.length; i++) {
|
|
154
|
-
urls.push(sound.src + sound.name + "." + audioExts[i] + nocache);
|
|
154
|
+
urls.push(sound.src + sound.name + "." + audioExts[i] + settings.nocache);
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
|
|
@@ -161,7 +161,7 @@ function load(sound, onloadcb, onerrorcb) {
|
|
|
161
161
|
autoplay : sound.autoplay === true,
|
|
162
162
|
loop : sound.loop = true,
|
|
163
163
|
html5 : sound.stream === true || sound.html5 === true,
|
|
164
|
-
xhrWithCredentials : withCredentials,
|
|
164
|
+
xhrWithCredentials : settings.withCredentials,
|
|
165
165
|
onloaderror() {
|
|
166
166
|
soundLoadError.call(this, sound.name, onerrorcb);
|
|
167
167
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine -
|
|
2
|
+
* melonJS Game Engine - v17.0.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -78,6 +78,7 @@ export { event };
|
|
|
78
78
|
import { onReady } from './system/device.js';
|
|
79
79
|
import * as device from './system/device.js';
|
|
80
80
|
export { device };
|
|
81
|
+
import { setNocache } from './loader/loader.js';
|
|
81
82
|
import * as loader from './loader/loader.js';
|
|
82
83
|
export { loader };
|
|
83
84
|
import * as math from './math/math.js';
|
|
@@ -99,7 +100,6 @@ export { default as state } from './state/state.js';
|
|
|
99
100
|
export { default as level } from './level/level.js';
|
|
100
101
|
export { DraggableEntity, DroptargetEntity, GUI_Object } from './lang/deprecated.js';
|
|
101
102
|
export { AUTO, CANVAS, WEBGL } from './const.js';
|
|
102
|
-
import { setNocache } from './loader/settings.js';
|
|
103
103
|
import { initKeyboardEvent } from './input/keyboard.js';
|
|
104
104
|
|
|
105
105
|
// ES5/ES6 polyfills
|
|
@@ -112,7 +112,7 @@ import { initKeyboardEvent } from './input/keyboard.js';
|
|
|
112
112
|
* @name version
|
|
113
113
|
* @type {string}
|
|
114
114
|
*/
|
|
115
|
-
const version = "
|
|
115
|
+
const version = "17.0.0";
|
|
116
116
|
|
|
117
117
|
/**
|
|
118
118
|
* a flag indicating that melonJS is fully initialized
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine -
|
|
2
|
+
* melonJS Game Engine - v17.0.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -17,10 +17,128 @@ import { preloadJSON } from './parsers/json.js';
|
|
|
17
17
|
import { preloadBinary } from './parsers/binary.js';
|
|
18
18
|
import { preloadJavascript } from './parsers/script.js';
|
|
19
19
|
import { preloadVideo } from './parsers/video.js';
|
|
20
|
-
import { baseURL } from './settings.js';
|
|
21
|
-
export { crossOrigin, nocache, setBaseURL, setNocache, withCredentials } from './settings.js';
|
|
22
20
|
import { warning } from '../lang/console.js';
|
|
23
21
|
|
|
22
|
+
/**
|
|
23
|
+
* a small class to manage loading of stuff and manage resources
|
|
24
|
+
* @namespace loader
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
// to enable/disable caching
|
|
29
|
+
let nocache = "";
|
|
30
|
+
|
|
31
|
+
// baseURL
|
|
32
|
+
let baseURL = {};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* crossOrigin attribute to configure the CORS requests for Image and Video data element.
|
|
36
|
+
* By default (that is, when the attribute is not specified), CORS is not used at all.
|
|
37
|
+
* The "anonymous" keyword means that there will be no exchange of user credentials via cookies,
|
|
38
|
+
* client-side SSL certificates or HTTP authentication as described in the Terminology section of the CORS specification.<br>
|
|
39
|
+
* @type {string}
|
|
40
|
+
* @name crossOrigin
|
|
41
|
+
* @default undefined
|
|
42
|
+
* @see loader.setOptions
|
|
43
|
+
* @memberof loader
|
|
44
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes
|
|
45
|
+
* @example
|
|
46
|
+
* // allow for cross-origin texture loading
|
|
47
|
+
* me.loader.crossOrigin = "anonymous";
|
|
48
|
+
*
|
|
49
|
+
* // set all ressources to be loaded
|
|
50
|
+
* me.loader.preload(game.resources, () => this.loaded());
|
|
51
|
+
*/
|
|
52
|
+
let crossOrigin;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* indicates whether or not cross-site Access-Control requests should be made using credentials such as cookies,
|
|
56
|
+
* authorization headers or TLS client certificates. Setting withCredentials has no effect on same-site requests.
|
|
57
|
+
* @public
|
|
58
|
+
* @type {boolean}
|
|
59
|
+
* @name withCredentials
|
|
60
|
+
* @see loader.setOptions
|
|
61
|
+
* @default false
|
|
62
|
+
* @memberof loader
|
|
63
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials
|
|
64
|
+
* @example
|
|
65
|
+
* // enable withCredentials
|
|
66
|
+
* me.loader.withCredentials = true;
|
|
67
|
+
*
|
|
68
|
+
* // set all ressources to be loaded
|
|
69
|
+
* me.loader.preload(game.resources, () => this.loaded());
|
|
70
|
+
*/
|
|
71
|
+
let withCredentials = false;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* enable the nocache mechanism
|
|
75
|
+
* @ignore
|
|
76
|
+
*/
|
|
77
|
+
function setNocache(enable = false) {
|
|
78
|
+
nocache = enable ? "?" + ~~(Math.random() * 10000000) : "";
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Sets the options for the loader.
|
|
83
|
+
* @memberof loader
|
|
84
|
+
* @param {Object} options - The options to set.
|
|
85
|
+
* @param {string} [options.crossOrigin] - The crossOrigin attribute to configure the CORS requests for Image and Video data element.
|
|
86
|
+
* @param {boolean} [options.nocache] - Enable or disable the nocache mechanism.
|
|
87
|
+
* @param {boolean} [options.withCredentials] - Indicates whether or not cross-site Access-Control requests should be made using credentials.
|
|
88
|
+
* @example
|
|
89
|
+
* // Set the crossOrigin attribute to "anonymous"
|
|
90
|
+
* me.loader.setOptions({ crossOrigin: "anonymous" });
|
|
91
|
+
*
|
|
92
|
+
* // Enable the nocache mechanism
|
|
93
|
+
* me.loader.setOptions({ nocache: true });
|
|
94
|
+
*
|
|
95
|
+
* // Enable withCredentials
|
|
96
|
+
* me.loader.setOptions({ withCredentials: true });
|
|
97
|
+
*/
|
|
98
|
+
function setOptions(options) {
|
|
99
|
+
if (options.crossOrigin !== undefined) {
|
|
100
|
+
crossOrigin = options.crossOrigin;
|
|
101
|
+
}
|
|
102
|
+
if (options.nocache !== undefined) {
|
|
103
|
+
setNocache(options.nocache);
|
|
104
|
+
}
|
|
105
|
+
if (options.withCredentials !== undefined) {
|
|
106
|
+
withCredentials = options.withCredentials;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* change the default baseURL for the given asset type.<br>
|
|
112
|
+
* (this will prepend the asset URL and must finish with a '/')
|
|
113
|
+
* @name setBaseURL
|
|
114
|
+
* @memberof loader
|
|
115
|
+
* @public
|
|
116
|
+
* @param {string} type - "*", "audio", "video", "binary", "image", "json", "js", "tmx", "tsx"
|
|
117
|
+
* @param {string} [url="./"] - default base URL
|
|
118
|
+
* @example
|
|
119
|
+
* // change the base URL relative address for audio assets
|
|
120
|
+
* me.loader.setBaseURL("audio", "data/audio/");
|
|
121
|
+
* // change the base URL absolute address for all object types
|
|
122
|
+
* me.loader.setBaseURL("*", "http://myurl.com/")
|
|
123
|
+
*/
|
|
124
|
+
function setBaseURL(type, url) {
|
|
125
|
+
if (type !== "*") {
|
|
126
|
+
baseURL[type] = url;
|
|
127
|
+
} else {
|
|
128
|
+
// "wildcards"
|
|
129
|
+
baseURL["audio"] = url;
|
|
130
|
+
baseURL["video"] = url;
|
|
131
|
+
baseURL["binary"] = url;
|
|
132
|
+
baseURL["image"] = url;
|
|
133
|
+
baseURL["json"] = url;
|
|
134
|
+
baseURL["js"] = url;
|
|
135
|
+
baseURL["tmx"] = url;
|
|
136
|
+
baseURL["tsx"] = url;
|
|
137
|
+
// XXX ?
|
|
138
|
+
//baseURL["fontface"] = url;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
24
142
|
/**
|
|
25
143
|
* onload callback
|
|
26
144
|
* @default undefined
|
|
@@ -368,7 +486,11 @@ function load(asset, onload, onerror) {
|
|
|
368
486
|
}
|
|
369
487
|
|
|
370
488
|
// parser returns the amount of asset to be loaded (usually 1 unless an asset is splitted into several ones)
|
|
371
|
-
return parser.call(this, asset, onload, onerror
|
|
489
|
+
return parser.call(this, asset, onload, onerror, {
|
|
490
|
+
nocache: nocache,
|
|
491
|
+
crossOrigin: crossOrigin,
|
|
492
|
+
withCredentials: withCredentials
|
|
493
|
+
});
|
|
372
494
|
}
|
|
373
495
|
|
|
374
496
|
/**
|
|
@@ -574,4 +696,4 @@ function getVideo(elt) {
|
|
|
574
696
|
return null;
|
|
575
697
|
}
|
|
576
698
|
|
|
577
|
-
export { baseURL, getBinary, getImage, getJSON, getTMX, getVideo, load, onError, onProgress, onload, preload, reload, setParser, unload, unloadAll };
|
|
699
|
+
export { baseURL, crossOrigin, getBinary, getImage, getJSON, getTMX, getVideo, load, nocache, onError, onProgress, onload, preload, reload, setBaseURL, setNocache, setOptions, setParser, unload, unloadAll, withCredentials };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine -
|
|
2
|
+
* melonJS Game Engine - v17.0.0
|
|
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,12 +13,13 @@ import { fetchData } from './fetchdata.js';
|
|
|
13
13
|
* @param {loader.Asset} data - asset data
|
|
14
14
|
* @param {Function} [onload] - function to be called when the asset is loaded
|
|
15
15
|
* @param {Function} [onerror] - function to be called in case of error
|
|
16
|
+
* @param {Object} [settings] - Additional settings to be passed when loading the asset
|
|
16
17
|
* @returns {number} the amount of corresponding resource parsed/preloaded
|
|
17
18
|
* @ignore
|
|
18
19
|
*/
|
|
19
|
-
function preloadBinary(data, onload, onerror) {
|
|
20
|
+
function preloadBinary(data, onload, onerror, settings) {
|
|
20
21
|
|
|
21
|
-
fetchData(data.src, "arrayBuffer")
|
|
22
|
+
fetchData(data.src, "arrayBuffer", settings)
|
|
22
23
|
.then(response => {
|
|
23
24
|
// this method is native and might be slightly more efficient
|
|
24
25
|
const decoder = new TextDecoder(); // the default for this is 'utf-8'
|