UNPKG

projectstarboy_ox_lib

Version:
45 lines 2.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.requestWeaponAsset = exports.requestStreamedTextureDict = exports.requestScaleformMovie = exports.requestNamedPtfxAsset = exports.requestModel = exports.requestAnimSet = exports.requestAnimDict = void 0; function streamingRequest(request, hasLoaded, assetType, asset, timeout, ...args) { return new Promise((resolve, reject) => { if (hasLoaded(asset)) resolve(asset); request(asset, ...args); if (typeof timeout !== 'number') timeout = 500; let i = 0; setTick(() => { if (hasLoaded(asset)) resolve(asset); i++; if (i === timeout) reject(`failed to load ${assetType} '${asset}' after ${timeout} ticks`); }); }); } const requestAnimDict = (animDict, timeout) => { if (!DoesAnimDictExist(animDict)) throw new Error(`attempted to load invalid animDict '${animDict}'`); return streamingRequest(RequestAnimDict, HasAnimDictLoaded, 'animDict', animDict, timeout); }; exports.requestAnimDict = requestAnimDict; const requestAnimSet = (animSet, timeout) => streamingRequest(RequestAnimSet, HasAnimSetLoaded, 'animSet', animSet, timeout); exports.requestAnimSet = requestAnimSet; const requestModel = (model, timeout) => { if (typeof model !== 'number') model = GetHashKey(model); if (!IsModelValid(model)) throw new Error(`attempted to load invalid model '${model}'`); return streamingRequest(RequestModel, HasModelLoaded, 'model', model, timeout); }; exports.requestModel = requestModel; const requestNamedPtfxAsset = (ptFxName, timeout) => streamingRequest(RequestNamedPtfxAsset, HasNamedPtfxAssetLoaded, 'ptFxName', ptFxName, timeout); exports.requestNamedPtfxAsset = requestNamedPtfxAsset; const requestScaleformMovie = (scaleformName, timeout) => streamingRequest(RequestScaleformMovie, HasScaleformMovieLoaded, 'scaleformMovie', scaleformName, timeout); exports.requestScaleformMovie = requestScaleformMovie; const requestStreamedTextureDict = (textureDict, timeout) => streamingRequest(RequestStreamedTextureDict, HasStreamedTextureDictLoaded, 'textureDict', textureDict, timeout); exports.requestStreamedTextureDict = requestStreamedTextureDict; const requestWeaponAsset = (weaponHash, timeout, weaponResourceFlags = 31, extraWeaponComponentFlags = 0) => streamingRequest(RequestWeaponAsset, HasWeaponAssetLoaded, 'weaponHash', weaponHash, timeout, weaponResourceFlags, extraWeaponComponentFlags); exports.requestWeaponAsset = requestWeaponAsset; //# sourceMappingURL=index.js.map