From 5c4ebc932d8c02522802c842d43d863d89aca162 Mon Sep 17 00:00:00 2001 From: Apickx Date: Mon, 28 Dec 2015 19:10:44 -0500 Subject: Initial commit --- gamemode/client/render_viewmodel.lua | 49 ++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 gamemode/client/render_viewmodel.lua (limited to 'gamemode/client/render_viewmodel.lua') diff --git a/gamemode/client/render_viewmodel.lua b/gamemode/client/render_viewmodel.lua new file mode 100644 index 0000000..3ab1230 --- /dev/null +++ b/gamemode/client/render_viewmodel.lua @@ -0,0 +1,49 @@ + +local Zero = Vector(1,1,1) + +function GM:PreDrawViewModel() + local pl = LocalPlayer() + local Wep = pl:GetActiveWeapon() + + if (!pl:IsPigeon() and IsValid(Wep)) then return true end + return false +end + +function GM:PostDrawOpaqueRenderables() + local pl = LocalPlayer() + local Wep = pl:GetActiveWeapon() + + if (pl:IsPigeon() or !IsValid(Wep)) then return end + if (!pl.Weapons or !pl.Weapons[pl.Select]) then return end + + local Ent = Wep.MOB + local item = pl.Weapons[pl.Select].Item + + for k,v in pairs(item.Structure) do + local ID = pl:LookupBone(v.Bone) + local Pos,Ang = pl:GetBonePosition(ID) + + local Rop = v.Pos*1 + local Roa = Ang*1 + + Roa:RotateAroundAxis(Ang:Right(),v.Ang.p) + Roa:RotateAroundAxis(Ang:Forward(),v.Ang.r) + Roa:RotateAroundAxis(Ang:Up(),v.Ang.y) + + Rop:Rotate(Ang) + + Ent:SetModel(v.Model) + Ent:SetRenderOrigin(Pos+Rop) + Ent:SetRenderAngles(Roa) + + local mat = Matrix() + mat:Scale( v.Size or Zero ) + + Ent:EnableMatrix( "RenderMultiply", mat ) + Ent:SetupBones() + + Ent:DrawModel() + end +end + + -- cgit v1.2.3-70-g09d2