53 lines
1.1 KiB
Lua
53 lines
1.1 KiB
Lua
AddCSLuaFile()
|
|
|
|
ENT.Type = "anim"
|
|
|
|
function ENT:SetupDataTables()
|
|
self:NetworkVar( "Entity",0, "Base" )
|
|
|
|
self:NetworkVar( "Entity",1, "Wheel" )
|
|
|
|
self:NetworkVar( "Float",0, "Pose0" )
|
|
self:NetworkVar( "Float",1, "Pose1" )
|
|
|
|
self:NetworkVar( "String",0, "NameID" )
|
|
end
|
|
|
|
if SERVER then
|
|
function ENT:Initialize()
|
|
self:SetModel( "models/dav0r/hoverball.mdl" )
|
|
self:SetMoveType( MOVETYPE_NONE )
|
|
self:SetSolid( SOLID_NONE )
|
|
self:DrawShadow( false )
|
|
end
|
|
|
|
function ENT:Think()
|
|
return false
|
|
end
|
|
end
|
|
|
|
if CLIENT then
|
|
function ENT:Draw()
|
|
end
|
|
|
|
function ENT:OnRemove()
|
|
end
|
|
|
|
function ENT:Think()
|
|
local Base = self:GetBase()
|
|
local Wheel = self:GetWheel()
|
|
|
|
if not IsValid( Base ) or not IsValid( Wheel ) then return end
|
|
|
|
local id = self:GetNameID()
|
|
local rotation = -self:WorldToLocalAngles( Wheel:GetAngles() ).r
|
|
|
|
local zpos = Base:WorldToLocal( Wheel:GetPos() ).z
|
|
|
|
if Wheel:GetNWDamaged() then zpos = zpos - Base.WheelPhysicsTireHeight end
|
|
|
|
Base:SetPoseParameter("vehicle_wheel_"..id.."_spin",rotation)
|
|
Base:SetPoseParameter("vehicle_wheel_"..id.."_height",math.Remap( zpos, self:GetPose0(), self:GetPose1(), 0, 1))
|
|
end
|
|
end
|