Advertisement
LawMixer

Function (where I registered the function)

May 22nd, 2021
880
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.56 KB | None | 0 0
  1. -- services
  2. local replicatedStorage = game:GetService('ReplicatedStorage')
  3.  
  4. -- objects
  5. local doorModules = replicatedStorage:WaitForChild('DoorModules')
  6.  
  7. -- variables
  8. local functions = {}
  9.  
  10. function functions.GetClosestTrigger(player, door)
  11.     local closest = {}
  12.     local triggerModel = door:FindFirstChild('Trigger') or door:FindFirstChild('Triggers') or nil
  13.  
  14.     if triggerModel then
  15.         for _, trigger in next, triggerModel:GetChildren() do
  16.             if trigger:IsA('Model') then
  17.                 local mag = (trigger.PrimaryPart.Position - player.Character.HumanoidRootPart.Position).magnitude
  18.                 table.insert(closest, {
  19.                     distance = player:DistanceFromCharacter(mag),
  20.                     trigger = trigger    
  21.                 })
  22.             end
  23.         end
  24.        
  25.         table.sort(closest, function(a, b)
  26.             return (a.distance < b.distance)
  27.         end)
  28.     end
  29.    
  30.     return closest[1] or {}
  31. end
  32.  
  33. function functions.GetClosestDoor(player, list)
  34.     local closest = {}
  35.    
  36.     list = (type(list) == 'table') and list or list:GetChildren()
  37.     for _, door in next, list do
  38.         if door:IsA('Model') or door:IsA('UnionOperation') then
  39.             local trigger = functions.GetClosestTrigger(player, door).trigger or door.PrimaryPart
  40.             print(trigger)
  41.             print(trigger.PrimaryPart)
  42.             local mag = (trigger.PrimaryPart.Position - player.Character.HumanoidRootPart.Position).magnitude
  43.             table.insert(closest, {
  44.                 door = door,
  45.                 trigger = trigger,
  46.                 distance = player:DistanceFromCharacter(mag),
  47.             })
  48.         end
  49.     end
  50.    
  51.     table.sort(closest, function(a, b)
  52.         return (a.distance < b.distance)
  53.     end)
  54. print(closest) 
  55.     return closest[1]
  56. end
  57.  
  58. return functions
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement