forked from Simnation/Main
73 lines
No EOL
1.9 KiB
Lua
73 lines
No EOL
1.9 KiB
Lua
local retreiveExportsData = require 'utils'.retreiveExportsData
|
|
local overrideFunction = {}
|
|
local ox_inventory = exports.ox_inventory
|
|
|
|
overrideFunction.methods = retreiveExportsData(ox_inventory, {
|
|
addItem = {
|
|
originalMethod = 'AddItem',
|
|
modifier = {
|
|
passSource = true,
|
|
}
|
|
},
|
|
removeItem = {
|
|
originalMethod = 'RemoveItem',
|
|
modifier = {
|
|
passSource = true,
|
|
effect = function(originalFun, source, name, count, slot)
|
|
return originalFun(source, name, count, nil, slot)
|
|
end,
|
|
}
|
|
},
|
|
setMetaData = {
|
|
originalMethod = 'SetMetadata',
|
|
modifier = {
|
|
passSource = true,
|
|
}
|
|
},
|
|
canCarryItem = {
|
|
originalMethod = 'CanCarryItem',
|
|
modifier = {
|
|
passSource = true,
|
|
}
|
|
},
|
|
getItem = {
|
|
originalMethod = 'GetSlotWithItem',
|
|
modifier = {
|
|
passSource = true,
|
|
}
|
|
},
|
|
items = {
|
|
originalMethod = 'GetInventoryItems',
|
|
modifier = {
|
|
executeFunc = true,
|
|
passSource = true,
|
|
}
|
|
},
|
|
})
|
|
|
|
local registeredItems = {}
|
|
|
|
AddEventHandler('ox_inventory:usedItem', function(playerId, itemName, slotId, metadata)
|
|
local itemEffect = registeredItems[itemName]
|
|
if not itemEffect then return end
|
|
itemEffect(playerId, slotId, metadata)
|
|
end)
|
|
|
|
function overrideFunction.registerUsableItem(name, cb)
|
|
registeredItems[name] = cb
|
|
end
|
|
|
|
function overrideFunction.registerInventory(id, data)
|
|
local type, name, items in data
|
|
if type == 'shop' then
|
|
ox_inventory:RegisterShop(id, {
|
|
name = name or 'Shop',
|
|
inventory = items or {},
|
|
})
|
|
elseif type == 'stash' then
|
|
local maxWeight, slots in data
|
|
ox_inventory:RegisterStash(id, name or 'Stash', slots or 10, maxWeight or 20000)
|
|
end
|
|
end
|
|
|
|
return overrideFunction |