Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local FrameTime = FrameTime
- local function calc_velocity(self, part)
- local diff = part.cached_pos - (part.last_pos or Vector(0,0,0))
- part.last_pos = part.cached_pos
- part.last_vel_smooth = part.last_vel_smooth or 0
- part.last_vel_smooth = (part.last_vel_smooth + (diff:Length() - part.last_vel_smooth) * FrameTime() * 4)
- return part.last_vel_smooth
- end
- PART.Inputs =
- {
- time = RealTime,
- synced_time = CurTime,
- random = function(s, p)
- return math.random()
- end,
- camera_distance = function(self, parent)
- return p.cached_pos:Distance(pac.EyePos)
- end,
- angle_distance = function(self, parent)
- return math.Clamp(math.abs(pac.EyeAng:Forward():DotProduct((parent.cached_pos - pac.EyePos):GetNormalized())) - 0.5, 0, 1)
- end,
- -- outfit owner
- owner_velocity_length = function(self, parent)
- local owner = self:GetOwner(self.RootOwner)
- if owner:IsValid() then
- return parent:GetOwner(self.RootOwner):GetVelocity():Length()
- end
- return 0
- end,
- owner_velocity_forward = function(self, parent)
- local owner = self:GetOwner(self.RootOwner)
- if owner:IsValid() then
- return owner:EyeAngles():Forward():Dot(calc_velocity(parent))
- end
- return 0
- end,
- owner_velocity_right = function(self, parent)
- local owner = self:GetOwner(self.RootOwner)
- if owner:IsValid() then
- return owner:EyeAngles():Right():Dot(calc_velocity(parent))
- end
- return 0
- end,
- owner_velocity_up = function(self, parent)
- local owner = self:GetOwner(self.RootOwner)
- if owner:IsValid() then
- return owner:EyeAngles():Up():Dot(calc_velocity(parent))
- end
- return 0
- end,
- -- parent part
- parent_velocity_length = function(self, parent)
- parent = parent.Parent
- if parent:IsValid() then
- return calc_velocity(parent)
- end
- return 0
- end,
- parent_velocity_forward = function(self, parent)
- parent = parent.Parent
- if parent:IsValid() then
- return parent.cached_ang:Forward():Dot(calc_velocity(parent))
- end
- return 0
- end,
- parent_velocity_right = function(self, parent)
- parent = parent.Parent
- if parent:IsValid() then
- return parent.cached_ang:Right():Dot(calc_velocity(parent))
- end
- return 0
- end,
- parent_velocity_up = function(self, parent)
- parent = parent.Parent
- if parent:IsValid() then
- return parent.cached_ang:Up():Dot(calc_velocity(parent))
- end
- return 0
- end
- }
Advertisement
Add Comment
Please, Sign In to add comment