163 lines
		
	
	
		
			No EOL
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			No EOL
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
module 'shared/debug'
 | 
						|
module 'shared/resource'
 | 
						|
 | 
						|
Version = resource.version(Bridge.TargetName)
 | 
						|
Bridge.Debug('Target', Bridge.TargetName, Version)
 | 
						|
 
 | 
						|
local function convert(options)
 | 
						|
    for id, v in pairs(options) do
 | 
						|
        v.name = v.label
 | 
						|
 | 
						|
        if v.job then v.groups = v.job end
 | 
						|
        
 | 
						|
        if v.canInteract or v.gang then
 | 
						|
            local canInteract = v.canInteract
 | 
						|
            v.canInteract = function(entity, distance, coords)
 | 
						|
                if v.gang and not Framework.HasGang(v.gang, Framework.Player) then return false end
 | 
						|
                if type(canInteract) == "function" then return canInteract(entity, coords, distance, v) end
 | 
						|
                return true
 | 
						|
            end
 | 
						|
        end
 | 
						|
    end
 | 
						|
    return options
 | 
						|
end
 | 
						|
 | 
						|
Target.DisableTarget = function(state)
 | 
						|
    exports[Bridge.TargetName]:disableTargeting(state)
 | 
						|
end
 | 
						|
 | 
						|
Target.AddGlobalObject = function(options)
 | 
						|
    exports[Bridge.TargetName]:addGlobalObject(convert(options))
 | 
						|
end
 | 
						|
 | 
						|
Target.RemoveGlobalObject = function(labels)
 | 
						|
    exports[Bridge.TargetName]:removeGlobalObject(labels)
 | 
						|
end
 | 
						|
 | 
						|
Target.AddGlobalPed = function(options)
 | 
						|
    exports[Bridge.TargetName]:addGlobalPed(convert(options))
 | 
						|
end
 | 
						|
 | 
						|
Target.RemoveGlobalPed = function(labels)
 | 
						|
    exports[Bridge.TargetName]:removeGlobalPed(labels)
 | 
						|
end
 | 
						|
 | 
						|
Target.AddGlobalPlayer = function(options)
 | 
						|
    exports[Bridge.TargetName]:addGlobalPlayer(convert(options))
 | 
						|
end
 | 
						|
 | 
						|
Target.RemoveGlobalPlayer = function(labels)
 | 
						|
    exports[Bridge.TargetName]:removeGlobalPlayer(labels)
 | 
						|
end
 | 
						|
 | 
						|
Target.AddGlobalVehicle = function(options)
 | 
						|
    exports[Bridge.TargetName]:addGlobalVehicle(convert(options))
 | 
						|
end
 | 
						|
 | 
						|
Target.RemoveGlobalVehicle = function(labels)
 | 
						|
    exports[Bridge.TargetName]:removeGlobalVehicle(labels)
 | 
						|
end
 | 
						|
 | 
						|
Target.AddModel = function(models, options)
 | 
						|
    exports[Bridge.TargetName]:addModel(models, convert(options))
 | 
						|
end
 | 
						|
 | 
						|
Target.RemoveModel = function(models, labels)
 | 
						|
    exports[Bridge.TargetName]:removeModel(models, labels)
 | 
						|
end
 | 
						|
 | 
						|
Target.AddEntity = function(entities, options)
 | 
						|
    if type(entities) ~= "table" then entities = { entities } end
 | 
						|
    for i = 1, #entities do
 | 
						|
        local entity = entities[i]
 | 
						|
        if NetworkGetEntityIsNetworked(entity) then
 | 
						|
            exports[Bridge.TargetName]:addEntity(NetworkGetNetworkIdFromEntity(entity), convert(options))
 | 
						|
        else
 | 
						|
            exports[Bridge.TargetName]:addLocalEntity(entity, convert(options))
 | 
						|
        end
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
Target.RemoveEntity = function(entities, labels)
 | 
						|
    if type(entities) ~= 'table' then entities = { entities } end
 | 
						|
    for i = 1, #entities do
 | 
						|
        local entity = entities[i]
 | 
						|
        if NetworkGetEntityIsNetworked(entity) then
 | 
						|
            exports[Bridge.TargetName]:removeEntity(NetworkGetNetworkIdFromEntity(entity), labels)
 | 
						|
        else
 | 
						|
            exports[Bridge.TargetName]:removeLocalEntity(entity, labels)
 | 
						|
        end
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
Target.AddBone = function(bones, options)
 | 
						|
    if type(bones) ~= 'table' then bones = { bones } end
 | 
						|
    
 | 
						|
    local boneName = ''
 | 
						|
    for _, bone in pairs(bones) do
 | 
						|
        boneName = boneName .. bone
 | 
						|
    end
 | 
						|
 | 
						|
    options = convert(options)
 | 
						|
    for _, v in pairs(options) do
 | 
						|
        v.bones = bones
 | 
						|
    end
 | 
						|
 | 
						|
    for k, v in pairs(options) do
 | 
						|
        options[k].name = v.label .. boneName
 | 
						|
    end
 | 
						|
    exports[Bridge.TargetName]:addGlobalVehicle(options)
 | 
						|
end
 | 
						|
 | 
						|
Target.RemoveBone = function(bones, labels)
 | 
						|
    if type(bones) ~= 'table' then bones = { bones } end
 | 
						|
 | 
						|
    local boneName = ''
 | 
						|
    for _, bone in pairs(bones) do
 | 
						|
        boneName = boneName .. bone
 | 
						|
    end
 | 
						|
 | 
						|
    if type(labels) == "string" then
 | 
						|
        labels = labels .. boneName
 | 
						|
    else
 | 
						|
        for k, v in pairs(labels) do
 | 
						|
            labels[k] = v .. boneName
 | 
						|
        end
 | 
						|
    end
 | 
						|
    exports[Bridge.TargetName]:removeGlobalVehicle(labels)
 | 
						|
end
 | 
						|
 | 
						|
Target.AddSphereZone = function(data)
 | 
						|
    return exports[Bridge.TargetName]:addSphereZone({
 | 
						|
        debug = data.debug,
 | 
						|
        name = data.name,
 | 
						|
        coords = data.coords,
 | 
						|
        radius = data.radius,
 | 
						|
        options = convert(data.options)
 | 
						|
    })
 | 
						|
end
 | 
						|
 | 
						|
Target.AddBoxZone = function(data)
 | 
						|
    return exports[Bridge.TargetName]:addBoxZone({
 | 
						|
        debug = data.debug,
 | 
						|
        name = data.name,
 | 
						|
        coords = data.coords,
 | 
						|
        size = data.size,
 | 
						|
        rotation = data.rotation,
 | 
						|
        options = convert(data.options)
 | 
						|
    })
 | 
						|
end
 | 
						|
 | 
						|
Target.AddPolyZone = function(data)
 | 
						|
    return exports[Bridge.TargetName]:addPolyZone({
 | 
						|
        debug = data.debug,
 | 
						|
        name = data.name,
 | 
						|
        points = data.points,
 | 
						|
        thickness = data.height, 
 | 
						|
        options = convert(data.options)
 | 
						|
    })
 | 
						|
end
 | 
						|
 | 
						|
Target.RemoveZone = function(id)
 | 
						|
    exports[Bridge.TargetName]:removeZone(id)
 | 
						|
end |