Files
VnUtest/garrysmod/addons/lvs_base/lua/entities/lvs_item_racingtires.lua
2026-03-31 10:27:04 +03:00

91 lines
1.9 KiB
Lua

AddCSLuaFile()
ENT.Type = "anim"
ENT.PrintName = "Racing Tires"
ENT.Author = "Luna"
ENT.Category = "[LVS]"
ENT.Spawnable = true
ENT.AdminOnly = false
ENT.PhysicsSounds = true
if SERVER then
function ENT:SpawnFunction( ply, tr, ClassName )
if not tr.Hit then return end
local ent = ents.Create( ClassName )
ent:SetPos( tr.HitPos + tr.HitNormal * 5 )
ent:Spawn()
ent:Activate()
return ent
end
function ENT:Initialize()
self:SetModel( "models/diggercars/tires.mdl" )
self:PhysicsInit( SOLID_VPHYSICS )
self:SetMoveType( MOVETYPE_VPHYSICS )
self:PhysWake()
end
function ENT:Think()
return false
end
function ENT:PhysicsCollide( data )
if self.MarkForRemove then return end
local ent = data.HitEntity
if not IsValid( ent ) or not ent.LVS or not isfunction( ent.SetRacingTires ) or ent.PivotSteerEnable then return end
ent:SetRacingTires( not ent:GetRacingTires() )
local ply = self:GetCreator()
ent:EmitSound("npc/dog/dog_servo6.wav")
if ent:GetRacingTires() then
if IsValid( ply ) then
ply:ChatPrint( "Racing Tires Mounted" )
end
for _, wheel in pairs( ent:GetWheels() ) do
if not IsValid( wheel ) then continue end
local effectdata = EffectData()
effectdata:SetOrigin( wheel:GetPos() )
effectdata:SetEntity( wheel )
util.Effect( "lvs_upgrade", effectdata )
end
else
if IsValid( ply ) then
ply:ChatPrint( "Racing Tires Removed" )
end
for _, wheel in pairs( ent:GetWheels() ) do
if not IsValid( wheel ) then continue end
local effectdata = EffectData()
effectdata:SetOrigin( wheel:GetPos() )
effectdata:SetEntity( wheel )
util.Effect( "lvs_downgrade", effectdata )
end
end
self.MarkForRemove = true
SafeRemoveEntityDelayed( self, 0 )
end
function ENT:OnTakeDamage( dmginfo )
end
else
function ENT:Draw( flags )
self:DrawModel( flags )
end
end