if CLIENT then
	SWEP.WepSelectIcon = surface.GetTextureID("vgui/hud/weapon_doietoolus")
	SWEP.DrawWeaponInfoBox	= false
	SWEP.BounceWeaponIcon = false 
	killicon.Add( "weapon_doietoolus", "vgui/hud/weapon_doietoolus", Color( 0, 0, 0, 255 ) )
	end
	
	SWEP.PrintName = "Entrenching Tool"
	
	SWEP.Category = "Engiener Tools"
	
	SWEP.Spawnable= true
	SWEP.AdminSpawnable= true
	SWEP.AdminOnly = false
	
	SWEP.ViewModelFOV = 60
	SWEP.ViewModel = "models/weapons/doi/v_etool_us.mdl" 
	SWEP.WorldModel = "models/weapons/doi/w_etool_us.mdl"
	SWEP.ViewModelFlip = false
	
	SWEP.AutoSwitchTo = false
	SWEP.AutoSwitchFrom = false
	
	SWEP.Slot = 0
	SWEP.SlotPos = 0
	 
	SWEP.UseHands = true
	
	SWEP.HoldType = "melee2" 
	
	SWEP.FiresUnderwater = false
	
	SWEP.DrawCrosshair = false
	
	SWEP.DrawAmmo = true
	
	SWEP.Base = "weapon_base"
	
	SWEP.CSMuzzleFlashes = true
	
	SWEP.Sprint = 0
	
	SWEP.Primary.ClipSize = 0
	SWEP.Primary.DefaultClip = 0
	SWEP.Primary.Automatic = false
	SWEP.Primary.Ammo = "none"
	
	SWEP.Secondary.ClipSize = 0
	SWEP.Secondary.DefaultClip = 0
	SWEP.Secondary.Automatic = false
	SWEP.Secondary.Ammo = "none"
	
	SWEP.Structures =  	{	
							{
								name = "Мешки с песком",
								icon = "entities/closebutton.png",
								cat = 1,
								hp = 10000,
								model = "models/props_fortifications/sandbags_corner1.mdl",
								count = 3,
								corrangle = Angle(0,0,0)
							},
							{
								name = "Большие мешки с песком",
								icon = "entities/closebutton.png",
								cat = 1,
								hp = 20000,
								model = "models/props_fortifications/sandbags_corner1_tall.mdl",
								count = 2,
								corrangle = Angle(0,0,0)
							},
							{
								name = "Противотанковые ёжи",
								icon = "entities/closebutton.png",
								cat = 1,
								hp = 50000,
								model = "models/test_sborka_props/barricades/ezi_antitank_2.mdl",
								count = 2,
								corrangle = Angle(0,-90,0)
							},
							{
								name = "Танковый окоп",
								icon = "entities/closebutton.png",
								cat = 2,
								hp = 100000,
								model = "models/trenches/prop/tank_cover/tank_cover.mdl",
								count = 3,
								corrangle = Angle(0,0,0)
							},
						}
	
	function SWEP:Initialize()
		self:SetWeaponHoldType( self.HoldType )
		self:GetOwner().buildtime = 0
	end 
	
	function SWEP:Deploy()
		self:SetNextPrimaryFire( CurTime() + self.Owner:GetViewModel():SequenceDuration() )
		self.Weapon:SendWeaponAnim( ACT_VM_DRAW )
		Sprint = 0
	end
	
	function SWEP:Holster()
		self.NextSecondaryAttack = 0
		Sprint = 0 
		return true
	end
	
	function SWEP:PrimaryAttack()
		if !(self.Weapon:GetNextPrimaryFire() < CurTime()) || not(Sprint == 0) then return end
		self.Weapon:SendWeaponAnim(ACT_VM_PRIMARYATTACK)
		self.Owner:SetAnimation( PLAYER_ATTACK1 )
		self:SetNextPrimaryFire( CurTime() + 1)
		self:SetNextSecondaryFire( CurTime() + 1)
	
		if SERVER then
			net.Start("openmenu")
			net.WriteTable(self.Structures)
			net.Send(self:GetOwner())	
		end
	
	end
	
	function SWEP:SecondaryAttack()
	end
	
	function SWEP:Reload()
		if SERVER then
			local item = self:GetOwner():GetEyeTrace().Entity
			if item:IsValid() then
				if item.id != nil then
					if item.Owner == self:GetOwner() then
						if (item:GetClass() == self.Structures[item.id].entity) or (item:GetModel() == self.Structures[item.id].model) then
							item:Remove()
							self.Structures[item.id].count = self.Structures[item.id].count + 1
						end
					end
				end
			end
		end
	end
	function SWEP:DrawHUDBackground()
		if self:GetOwner().buildtime > 0 then
			draw.RoundedBox( 20, ScrW()/2-150, ScrH()/2-30, 0+300-self:GetOwner().buildtime*15, 60, Color( 50, 50, 50 , 180) )
			draw.RoundedBox( 20, ScrW()/2-145, ScrH()/2-25, 0+290-self:GetOwner().buildtime*14.5, 50, Color( 0, 255, 0 ,125) )
			draw.DrawText( tostring(100 - self:GetOwner().buildtime*5) .. '%', "Font3", ScrW()/2-20, ScrH()/2-15, Color( 255, 255, 255 ,255), 0 )
		end
	end
	
	local delay = 0.5
	local nextOccurance = 0
	local flag1 = true 
		if CLIENT then
	function SWEP:RenderScreen()
					if self.Owner.buildtime < 0  or Sprint == 2  then
						self.Weapon:SendWeaponAnim(ACT_VM_IDLE)
					end
	
	
				if input.IsKeyDown(KEY_F) and flag1 then
					net.Start("buildstop12")
					net.SendToServer()	
					self.Owner.building = false
					self.Owner.buildtime = -3
					flag1 = false
					timer.Simple(1, function() flag1 = true end)
				end
	 
				local timeLeft = nextOccurance - CurTime()
				if timeLeft < 0 and self:GetOwner().buildtime >= 0 then 
					self:GetOwner().buildtime = self:GetOwner().buildtime - 0.5
					self.Weapon:SendWeaponAnim(ACT_VM_PRIMARYATTACK)
					self:GetOwner():SetAnimation( PLAYER_ATTACK1 )
					self:SetNextPrimaryFire( CurTime() + delay)
					nextOccurance = CurTime() + delay
				end
				net.Receive("buildanim", function(len, ply)
					self:GetOwner().buildtime = 20
				end)	
		end
	end
	if SERVER then
	function SWEP:Think()
	
		
				net.Receive("buildstop12", function(len, ply)
					ply:Freeze(false)
					if self.LastEnt:IsValid() then
						self.Structures[self.LastEnt.id].count = self.Structures[self.LastEnt.id].count + 1
						self.LastEnt:Remove()
					end
				end)
				net.Receive("buildtrench", function(len, ply)
					if ply:GetActiveWeapon():GetClass() != "engineertool" then return end
					local id = 	net.ReadInt(13)			
						if (ply:GetEyeTrace().HitPos - ply:GetEyeTrace().StartPos):Length() <= 300 then 
							if self.Structures[id].count > 0 then
								net.Start("buildanim")
								net.WriteEntity(item)
								net.Send(self:GetOwner()) 
								local item = ents.Create("util_structure")
								item:SetPos(ply:GetEyeTrace().HitPos)
								item:SetAngles(ply:GetEyeTrace().HitNormal:Angle() + Angle(90,ply:EyeAngles().y,0))
								item:SetModel(self.Structures[id].model)
								item.hp = self.Structures[id].hp
								item.id = id
								item.poscoef = -100
								item.building = true
								item.Owner = self:GetOwner()
								item:Spawn()
								self.LastEnt = item
								self.Structures[id].count = self.Structures[id].count - 1
		
							end
						end 
				end)
				net.Receive("setentity", function(len, ply)
					if ply:GetActiveWeapon():GetClass() != "engineertool" then return end
					local id = net.ReadInt(13)	
					if (ply:GetEyeTrace().HitPos - ply:GetEyeTrace().StartPos):Length() <= 300 then 
						if self.Structures[id].count > 0 then
							local item = ents.Create(self.Structures[id].entity)
							item:SetPos(ply:GetEyeTrace().HitPos + ply:GetEyeTrace().HitNormal * 40)
							item:SetAngles(ply:GetEyeTrace().HitNormal:Angle() + self.Structures[id].corrangle)
							item.id = id
							item.Owner = self:GetOwner()
							item:Spawn()
							self.LastEnt = item
							self.Structures[id].count = self.Structures[id].count - 1
						end
					end
				end)
			if (Sprint == 0)  then
	
				if self.Owner:KeyDown(IN_SPEED) and (self.Owner:KeyDown(IN_FORWARD) || self.Owner:KeyDown(IN_BACK) || self.Owner:KeyDown(IN_MOVELEFT) || self.Owner:KeyDown(IN_MOVERIGHT)) then
					Sprint = 1
				end
			end
			if (Sprint == 1) then
				self.Weapon:SendWeaponAnim(ACT_VM_SPRINT_IDLE)
				Sprint = 2
			end
			if (Sprint == 2)  then
				if self.Owner:KeyReleased(IN_SPEED)  then
					self.Weapon:SendWeaponAnim(ACT_VM_IDLE)
					Sprint = 0
				end
			end
		
	end
	end
