Files
community_bridge/modules/clothing/_default/client.lua
T
MrNewb 48f8122197 Remove cache and batch event libraries, update locales
Deleted the cache and batch event libraries from the codebase, including all related client, server, and shared files. Removed server-side particle library and associated client event handlers. Updated utility and clothing modules to remove cache dependencies. Improved utility logging and deprecated point functions with notices. Updated all locales to use a consistent 'PurchasedItem' message format and added Bulgarian (bg) translation. Bumped version to 0.13.1 in fxmanifest.
2025-12-23 19:27:27 -05:00

95 lines
3.0 KiB
Lua

---@diagnostic disable: duplicate-set-field
Clothing = Clothing or {}
Callback = Callback or Require("lib/callback/shared/callback.lua")
local ClothingBackup = {}
---This will get the name of the in use resource.
---@return string
function Clothing.GetResourceName()
return 'default'
end
---This will open the clothing menu for a player, in the event there is not a supported menu it will print that.
function Clothing.OpenMenu()
print("^6 No supported clothing menu in use in community_bridge. ^0 ")
end
---This will check if the player model if male/female
---@return boolean
function Clothing.IsMale()
local ped = PlayerPedId()
if not ped or not DoesEntityExist(ped) then return false end
if GetEntityModel(ped) == `mp_m_freemode_01` then return true end
return false
end
---Get the skin data of a ped
---@param entity number
---@return table
function Clothing.GetAppearance(entity)
if not entity and not DoesEntityExist(entity) then return {} end
local model = GetEntityModel(entity)
local skinData = { model = model, components = {}, props = {} }
for i = 0, 11 do
table.insert(skinData.components,
{ component_id = i, drawable = GetPedDrawableVariation(entity, i), texture = GetPedTextureVariation(entity, i) })
end
for i = 0, 13 do
table.insert(skinData.props,
{ prop_id = i, drawable = GetPedPropIndex(entity, i), texture = GetPedPropTextureIndex(entity, i) })
end
ClothingBackup = skinData
return skinData
end
Callback.Register('community_bridge:cb:GetAppearance', function()
local ped = PlayerPedId()
if not ped or not DoesEntityExist(ped) then return end
local skinData = Clothing.GetAppearance(ped)
return skinData
end)
---Apply skin data to a ped
---@param ped number
---@param skinData table
---@return boolean
function Clothing.SetAppearance(ped, skinData)
for k, v in pairs(skinData.components or {}) do
if v.component_id then
SetPedComponentVariation(ped, v.component_id, v.drawable, v.texture, 0)
end
end
for k, v in pairs(skinData.props or {}) do
if v.prop_id then
SetPedPropIndex(ped, v.prop_id, v.drawable, v.texture, false)
end
end
ClothingBackup = nil
return true
end
---This will return the peds components to the previously stored components
---@param ped number
---@return boolean
Clothing.RestoreAppearance = function(ped)
Clothing.SetAppearance(ped, ClothingBackup)
return true
end
RegisterNetEvent('community_bridge:client:SetAppearance', function(data)
if source ~= 65535 then return end
Clothing.SetAppearance(PlayerPedId(), data)
end)
RegisterNetEvent('community_bridge:client:GetAppearance', function()
if source ~= 65535 then return end
Clothing.GetAppearance(PlayerPedId())
end)
RegisterNetEvent('community_bridge:client:RestoreAppearance', function()
if source ~= 65535 then return end
Clothing.RestoreAppearance(PlayerPedId())
end)
return Clothing