You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-10 13:00:37 +00:00
Fix engine.js preloadFile() with directories
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
exposedLibs['PATH'] = PATH;
|
||||||
exposedLibs['FS'] = FS;
|
exposedLibs['FS'] = FS;
|
||||||
return Module;
|
return Module;
|
||||||
},
|
},
|
||||||
@@ -96,14 +97,14 @@
|
|||||||
}
|
}
|
||||||
if (pathOrBuffer instanceof Uint8Array) {
|
if (pathOrBuffer instanceof Uint8Array) {
|
||||||
preloadedFiles.push({
|
preloadedFiles.push({
|
||||||
name: bufferFilename,
|
path: bufferFilename,
|
||||||
buffer: pathOrBuffer
|
buffer: pathOrBuffer
|
||||||
});
|
});
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
} else if (typeof pathOrBuffer === 'string') {
|
} else if (typeof pathOrBuffer === 'string') {
|
||||||
return loadPromise(pathOrBuffer, preloadProgressTracker).then(function(xhr) {
|
return loadPromise(pathOrBuffer, preloadProgressTracker).then(function(xhr) {
|
||||||
preloadedFiles.push({
|
preloadedFiles.push({
|
||||||
name: pathOrBuffer,
|
path: pathOrBuffer,
|
||||||
buffer: xhr.response
|
buffer: xhr.response
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -166,7 +167,16 @@
|
|||||||
this.rtenv.thisProgram = executableName || getBaseName(basePath);
|
this.rtenv.thisProgram = executableName || getBaseName(basePath);
|
||||||
|
|
||||||
preloadedFiles.forEach(function(file) {
|
preloadedFiles.forEach(function(file) {
|
||||||
LIBS.FS.createDataFile('/', file.name, new Uint8Array(file.buffer), true, true, true);
|
var dir = LIBS.PATH.dirname(file.path);
|
||||||
|
try {
|
||||||
|
LIBS.FS.stat(dir);
|
||||||
|
} catch (e) {
|
||||||
|
if (e.code !== 'ENOENT') {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
LIBS.FS.mkdirTree(dir);
|
||||||
|
}
|
||||||
|
LIBS.FS.createDataFile('/', file.path, new Uint8Array(file.buffer), true, true, true);
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
preloadedFiles = null;
|
preloadedFiles = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user