Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- services
- local replicatedStorage = game:GetService('ReplicatedStorage')
- -- objects
- local doorModules = replicatedStorage:WaitForChild('DoorModules')
- -- variables
- local functions = {}
- function functions.GetClosestTrigger(player, door)
- local closest = {}
- local triggerModel = door:FindFirstChild('Trigger') or door:FindFirstChild('Triggers') or nil
- if triggerModel then
- for _, trigger in next, triggerModel:GetChildren() do
- if trigger:IsA('Model') then
- local mag = (trigger.PrimaryPart.Position - player.Character.HumanoidRootPart.Position).magnitude
- table.insert(closest, {
- distance = player:DistanceFromCharacter(mag),
- trigger = trigger
- })
- end
- end
- table.sort(closest, function(a, b)
- return (a.distance < b.distance)
- end)
- end
- return closest[1] or {}
- end
- function functions.GetClosestDoor(player, list)
- local closest = {}
- list = (type(list) == 'table') and list or list:GetChildren()
- for _, door in next, list do
- if door:IsA('Model') or door:IsA('UnionOperation') then
- local trigger = functions.GetClosestTrigger(player, door).trigger or door.PrimaryPart
- print(trigger)
- print(trigger.PrimaryPart)
- local mag = (trigger.PrimaryPart.Position - player.Character.HumanoidRootPart.Position).magnitude
- table.insert(closest, {
- door = door,
- trigger = trigger,
- distance = player:DistanceFromCharacter(mag),
- })
- end
- end
- table.sort(closest, function(a, b)
- return (a.distance < b.distance)
- end)
- print(closest)
- return closest[1]
- end
- return functions
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement