projectstarboy_ox_lib
Version:
JS/TS wrapper for ox_lib exports
45 lines • 2.7 kB
JavaScript
;
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