UNPKG

rl-loadout-lib

Version:

Load Rocket League assets into three.js

67 lines 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const rocket_config_1 = require("../model/rocket-config"); const three_1 = require("three"); const tga_loader_1 = require("../utils/three/tga-loader"); /** * Wrapper around THREE.js loaders to work with Promises. */ class PromiseLoader { constructor(loader) { this.loader = loader; } load(url) { return new Promise((resolve, reject) => { if (url) { this.loader.load(url, resolve, undefined, reject); } else { resolve(undefined); } }); } } exports.PromiseLoader = PromiseLoader; /** * Image loader that handles multiple texture formats using ImageLoader and TGALoader. */ class MultiImageLoader { constructor(format, loadingManager) { this.format = format; if (this.format === rocket_config_1.TextureFormat.TGA) { this.loader = new tga_loader_1.TGALoader(loadingManager); } else { this.loader = new three_1.ImageLoader(loadingManager); } } load(url, onLoad, onProgress, onError) { this.loader.load(url, onLoad, onProgress, onError); } } exports.MultiImageLoader = MultiImageLoader; /** * Texture loader that handles multiple texture formats using ImageLoader and TGALoader. */ class ImageTextureLoader { constructor(format, loadingManager) { this.format = format; if (this.format === rocket_config_1.TextureFormat.TGA) { this.loader = new tga_loader_1.TGALoader(loadingManager); } else { this.loader = new three_1.TextureLoader(loadingManager); } } load(url, onLoad, onProgress, onError) { this.loader.load(url, texture => { texture.wrapS = three_1.RepeatWrapping; texture.wrapT = three_1.RepeatWrapping; texture.encoding = three_1.LinearEncoding; texture.flipY = false; onLoad(texture); }, onProgress, onError); } } exports.ImageTextureLoader = ImageTextureLoader; //# sourceMappingURL=loader.js.map