local ITEM = {} ITEM.Name = "Infuser" ITEM.Class = "structure" ITEM.Desc = "Cast enchantments\nPlace runes nearby to boost magical power and have different effects\nHold down shift to snap" ITEM.Model = "models/props_junk/wood_crate002a.mdl" ITEM.Icon = Material("settlement/icon_researchtable") ITEM.Recipe = { Resources = { ["Log"] = 5, ["Sap"] = 5, }, Tools = { ["Crystal Hammer"] = 1, }, } ITEM.Structure = { { Bone = "ValveBiped.Bip01_R_Hand", Model = "models/props_junk/wood_crate002a.mdl", Size = Vector(0.5,0.5,0.5), Pos = Vector(4,-3,-1), Ang = Angle(0,0,0), }, } ITEM.Ghost = { { Model = "models/props_junk/wood_crate002a.mdl", Size = Vector(1,1,1), Pos = Vector(0,0,0), Ang = Angle(0,0,0), }, } ITEM.Range = 200 ITEM.CD = 0.5 function ITEM:OnPrimary(pl,tr) if (CLIENT) then return end if (!pl:CanPlaceStructure(tr)) then pl:GhostStructure(self.Name) return end if (tr.Hit) then local drop = ents.Create("ws_infuser") local Aim = Angle(0,pl:GetAimVector():Angle().y+90,0) local Pos = tr.HitPos if(pl:KeyDown(IN_SPEED)) then Pos.x = Pos.x - (Pos.x%20) Pos.y = Pos.y - (Pos.y%20) Pos.z = Pos.z - (Pos.z%20) Aim.yaw = Aim.yaw - (Aim.yaw%15) end drop:SetAngles(Aim) drop:SetPos(Pos) drop:Spawn() drop:Activate() if (pl:HasItem(self.Name)) then pl:RemoveItem(self.Name,1) else pl:UnEquipWeaponSlot(pl.Select,true) end pl:GhostRemove() else pl:EmitSound(Sound("weapons/iceaxe/iceaxe_swing1.wav"),100,math.random(90,110)) end end RegisterItem(ITEM)