aboutsummaryrefslogtreecommitdiff
path: root/gamemode/itemsystem/weapons_common.lua
blob: 3c3e6ca8bf23d6d4252f145309c89156cef625e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
-- --This file has been moved to core/inventory/common/weapons.lua
-- do return end
-- ART = ART or {}
-- 
-- --- Finds the direction a player is moveing.
-- -- @param player The player to find the move direction of
-- -- @return The string "forward", "backward", "right", or "left"
-- function ART.playermovedir(player)
--     local vel = player:GetVelocity():GetNormalized()
--     vel.z = 0
--     local swings = {
--         {player:GetForward(),"forward"},
--         {-player:GetForward(),"backward"},
--         {player:GetRight(),"right"},
--         {-player:GetRight(),"left"}
--     }
--     table.sort(swings,function(a,b)
--         return vel:Dot(a[1]) > vel:Dot(b[1])
--     end)
--     return swings[1][2]
-- end
-- 
-- 
-- local positionset = {}
-- --- The arc swing of a weapon.
-- -- Finds anything that a weapon should hit in it's swing, and calls a function on it.
-- -- @param player The player that's swinging the weapon
-- -- @param tiems A table of times that the trace calculations should be done at, this table needs to be the same length as the positions table
-- -- @param positions The position offsets from the player that swung that should be the start/end points of the arc
-- -- @param onhit A function to call on any entities that were hit in the swing of the weapon.
-- function ART.swingarc(player,times,positions,onhit)
--     local positionpoints = {}
--     table.insert(positionset,positionpoints)
--     for k,v in ipairs(times) do
--         timer.Simple(v,function()
--             ART.TraceWeapon = true
--             ART.TraceStart = CurTime()
--             print("positions[k]",positions[k],"playerpos",player:GetPos(),"add",Vector(0,0,64))
--             local weaponpos = positions[k] + player:GetPos() + Vector(0,0,64)
--             table.insert(positionpoints,weaponpos)
--             if #positionpoints > 1 then
--                 --print("Trace from ", positionpoints[#positionpoints-1], " to ", positionpoints[#positionpoints])
--                 local tr = util.TraceLine({
--                     start = positionpoints[#positionpoints-1],
--                     endpos = positionpoints[#positionpoints],
--                 })
--                 onhit(tr)
--             end
--         end)
--     end
--     timer.Simple(times[#times],function()
--         print("Inserted swing, drawn positions are now:")
--         PrintTable(positionset)
--         ART.TraceWeapon = false
--     end)
-- end
-- 
-- hook.Add( "HUDPaint", "weaponswings", function()
-- 	cam.Start3D() -- Start the 3D function so we can draw onto the screen.
--         for k,v in pairs(positionset) do
--             for i = 1,#v-1 do
--                 render.DrawLine( v[i], v[i+1], Color(255,0,0,255), false )
--                 render.DrawLine( v[i], v[i]+Vector(0,0,20),Color(0,255,0,255),false)
--             end
--         end
-- 		--render.SetMaterial( material ) -- Tell render what material we want, in this case the flash from the gravgun
-- 		--render.DrawSprite( pos, 16, 16, white ) -- Draw the sprite in the middle of the map, at 16x16 in it's original colour with full alpha.
-- 	cam.End3D()
-- end )
-- 
-- return wcommon