52 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
--[[
 | 
						|
    https://github.com/overextended/ox_lib
 | 
						|
 | 
						|
    This file is licensed under LGPL-3.0 or higher <https://www.gnu.org/licenses/lgpl-3.0.en.html>
 | 
						|
 | 
						|
    Copyright © 2025 Linden <https://github.com/thelindat>
 | 
						|
]]
 | 
						|
 | 
						|
---@alias WeaponResourceFlags
 | 
						|
---| 1 WRF_REQUEST_BASE_ANIMS
 | 
						|
---| 2 WRF_REQUEST_COVER_ANIMS
 | 
						|
---| 4 WRF_REQUEST_MELEE_ANIMS
 | 
						|
---| 8 WRF_REQUEST_MOTION_ANIMS
 | 
						|
---| 16 WRF_REQUEST_STEALTH_ANIMS
 | 
						|
---| 32 WRF_REQUEST_ALL_MOVEMENT_VARIATION_ANIMS
 | 
						|
---| 31 WRF_REQUEST_ALL_ANIMS
 | 
						|
 | 
						|
---@alias ExtraWeaponComponentFlags
 | 
						|
---| 0 WEAPON_COMPONENT_NONE
 | 
						|
---| 1 WEAPON_COMPONENT_FLASH
 | 
						|
---| 2 WEAPON_COMPONENT_SCOPE
 | 
						|
---| 4 WEAPON_COMPONENT_SUPP
 | 
						|
---| 8 WEAPON_COMPONENT_SCLIP2
 | 
						|
---| 16 WEAPON_COMPONENT_GRIP
 | 
						|
 | 
						|
---Load a weapon asset. When called from a thread, it will yield until it has loaded.
 | 
						|
---@param weaponType string | number
 | 
						|
---@param timeout number? Approximate milliseconds to wait for the asset to load. Default is 10000.
 | 
						|
---@param weaponResourceFlags WeaponResourceFlags? Default is 31.
 | 
						|
---@param extraWeaponComponentFlags ExtraWeaponComponentFlags? Default is 0.
 | 
						|
---@return string | number weaponType
 | 
						|
function lib.requestWeaponAsset(weaponType, timeout, weaponResourceFlags, extraWeaponComponentFlags)
 | 
						|
    if HasWeaponAssetLoaded(weaponType) then return weaponType end
 | 
						|
 | 
						|
    local weaponTypeType = type(weaponType) --kekw
 | 
						|
 | 
						|
    if weaponTypeType ~= 'string' and weaponTypeType ~= 'number' then
 | 
						|
        error(("expected weaponType to have type 'string' or 'number' (received %s)"):format(weaponTypeType))
 | 
						|
    end
 | 
						|
 | 
						|
    if weaponResourceFlags and type(weaponResourceFlags) ~= 'number' then
 | 
						|
        error(("expected weaponResourceFlags to have type 'number' (received %s)"):format(type(weaponResourceFlags)))
 | 
						|
    end
 | 
						|
 | 
						|
    if extraWeaponComponentFlags and type(extraWeaponComponentFlags) ~= 'number' then
 | 
						|
        error(("expected extraWeaponComponentFlags to have type 'number' (received %s)"):format(type(extraWeaponComponentFlags)))
 | 
						|
    end
 | 
						|
 | 
						|
    return lib.streamingRequest(RequestWeaponAsset, HasWeaponAssetLoaded, 'weaponHash', weaponType, timeout, weaponResourceFlags or 31, extraWeaponComponentFlags or 0)
 | 
						|
end
 | 
						|
 | 
						|
return lib.requestWeaponAsset
 |