AddCSLuaFile() local SligWolf_Addons = SligWolf_Addons local addonName = "garbagetruck" DEFINE_BASECLASS("sligwolf_weapon_base") -- Tell the user something is wrong ("Broken") with the addons in case they see the usually hidden placeholder node. -- This item is moved to a different custom build category if everything is fine and the "Broken" one is hidden. SWEP.Category = "SligWolf's Addons (Broken)" SWEP.Spawnable = false SWEP.AdminOnly = false SWEP.PrintName = "Dumpster" SWEP.Base = "sligwolf_weapon_base" SWEP.m_WeaponDeploySpeed = 5 SWEP.ViewModel = "models/sligwolf/garbagetruck/c_dumpsterswep.mdl" SWEP.ViewModelFlip = false SWEP.ViewModelFlip1 = false SWEP.ViewModelFlip2 = false SWEP.ViewModelFOV = 62 SWEP.WorldModel = "models/sligwolf/garbagetruck/w_dumpsterswep.mdl" SWEP.AutoSwitchFrom = false SWEP.AutoSwitchTo = false SWEP.Weight = 5 SWEP.UseHands = true SWEP.Primary.Ammo = "none" SWEP.Primary.ClipSize = 1 SWEP.Primary.DefaultClip = 1 SWEP.Primary.Automatic = false SWEP.Secondary.Ammo = "none" SWEP.Secondary.ClipSize = 0 SWEP.Secondary.DefaultClip = 0 SWEP.Secondary.Automatic = false if CLIENT then SWEP.Author = "SligWolf" SWEP.Contact = "http://steamcommunity.com/id/SligWolf" SWEP.Purpose = "Place a dumpster." SWEP.Instructions = "LeftMouse = Place dumpster" SWEP.BobScale = 1 SWEP.SwayScale = 1 SWEP.BounceWeaponIcon = false SWEP.DrawWeaponInfoBox = false SWEP.DrawAmmo = false SWEP.DrawCrosshair = true SWEP.RenderGroup = RENDERGROUP_OPAQUE SWEP.Slot = 5 SWEP.SlotPos = 10 SWEP.SpeechBubbleLid = surface.GetTextureID("gui/speech_lid") SWEP.WepSelectIcon = surface.GetTextureID("hud/sligwolf/garbagetruck/weaponicons/sligwolf_weapon_dumpster_icon") SWEP.CSMuzzleFlashes = false SWEP.CSMuzzleX = false SWEP.AccurateCrosshair = false end if not SligWolf_Addons then return end if not SligWolf_Addons.HasLoadedAddon then return end if not SligWolf_Addons.HasLoadedAddon(addonName) then return end SWEP.Spawnable = true local LIBModel = SligWolf_Addons.Model local addon = SligWolf_Addons.GetAddon(addonName) local primarySnd = addon:GetSoundScriptName("mechanic") local maxDist = 150 * 150 function SWEP:Initialize() self:SetAddonID(addonName) self:SetHoldType("slam") end function SWEP:PrimaryAttack() if not self:CanPrimaryAttack() then return false end local Now = CurTime() local Owner = self:GetOwner() local tr = util.TraceLine(util.GetPlayerTrace(Owner)) local hitPos = tr.HitPos local eyePos = Owner:EyePos() if eyePos:DistToSqr(hitPos) > maxDist then return false end self:EmitSound(primarySnd) self:SetNextPrimaryFire(Now + 1.0) self:ShootEffects(self) if CLIENT then return false end local dumpster = self:MakeEnt("prop_physics", "dumpster", dumpster) if not IsValid(dumpster) then return false end LIBModel.SetModel(dumpster, "models/sligwolf/garbagetruck/dumpster.mdl") dumpster:SetPos(hitPos) dumpster:SetAngles(Angle(0, -90 + Owner:EyeAngles().y, 0)) dumpster:Spawn() undo.Create("Dumpster") undo.AddEntity(dumpster) undo.SetPlayer(Owner) undo.Finish() if not Owner:IsAdmin() then Owner:StripWeapon("sligwolf_weapon_dumpster") end return true end function SWEP:SecondaryAttack() return false end function SWEP:Reload() return false end