59 lines
1.2 KiB
JavaScript
59 lines
1.2 KiB
JavaScript
var Resources = {}
|
|
|
|
var so_ext;
|
|
switch(os.sys()) {
|
|
case 'Windows':
|
|
so_ext = '.dll';
|
|
break;
|
|
default:
|
|
so_ext = '.so';
|
|
break;
|
|
}
|
|
|
|
Resources.scripts = ["jsoc", "jsc", "jso", "js"]
|
|
Resources.images = ["qoi", "png", "gif", "jpg", "jpeg", "ase", "aseprite"]
|
|
Resources.sounds = ["wav", "flac", "mp3", "qoa"]
|
|
Resources.fonts = ["ttf"]
|
|
Resources.lib = [so_ext]
|
|
|
|
Resources.canonical = function(file)
|
|
{
|
|
return io.realdir(file) + file
|
|
}
|
|
|
|
// ext is a list of extensions to search
|
|
// returns the file to load
|
|
function find_ext(file, ext) {
|
|
if (!file) return;
|
|
|
|
var file_ext = file.ext()
|
|
if (file_ext && ext.some(e => e === file_ext))
|
|
if (io.exists(file)) return file
|
|
|
|
for (var e of ext) {
|
|
var attempt = `${file}.${e}`;
|
|
if (io.exists(attempt)) return attempt
|
|
}
|
|
|
|
return undefined
|
|
}
|
|
|
|
Resources.find_image = function (file) {
|
|
return find_ext(file, Resources.images);
|
|
}.hashify();
|
|
|
|
Resources.find_sound = function (file) {
|
|
return find_ext(file, Resources.sounds);
|
|
}.hashify();
|
|
|
|
Resources.find_script = function (file) {
|
|
return find_ext(file, Resources.scripts);
|
|
}.hashify();
|
|
|
|
Resources.find_font = function(file) {
|
|
return find_ext(file, Resources.fonts);
|
|
}.hashify();
|
|
|
|
|
|
return Resources
|