e9da54c2f9
Too many changes to list.
103 lines
3.3 KiB
Lua
103 lines
3.3 KiB
Lua
INC_CLIENT()
|
|
|
|
SWEP.ViewModelFOV = 45
|
|
SWEP.ViewModelFlip = false
|
|
|
|
SWEP.BobScale = 0.15
|
|
SWEP.SwayScale = 0.15
|
|
|
|
SWEP.ShowViewModel = false
|
|
SWEP.ShowWorldModel = false
|
|
|
|
SWEP.VElements = {
|
|
["base"] = { type = "Model", model = "models/props_c17/tv_monitor01.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(7.791, 3.635, -1.558), angle = Angle(0, -118.053, 180), size = Vector(0.1, 0.5, 0.5), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {} }
|
|
}
|
|
|
|
SWEP.WElements = {
|
|
["base"] = { type = "Model", model = "models/props_c17/tv_monitor01.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(4.675, 4.5, -1.558), angle = Angle(0, 180, 180), size = Vector(0.1, 0.4, 0.4), color = Color(255, 255, 255, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {} },
|
|
["base+"] = { type = "Model", model = "models/props_c17/tv_monitor01_screen.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "base", pos = Vector(0, 0, 0), angle = Angle(0, 0, 0), size = Vector(0.1, 0.4, 0.4), color = Color(255, 255, 255, 255), surpresslightning = false, material = "effects/tvscreen_noise003a", skin = 0, bodygroup = {} }
|
|
}
|
|
|
|
SWEP.ViewModelBoneMods = {
|
|
["ValveBiped.Bip01_R_UpperArm"] = { scale = Vector(1, 1, 1), pos = Vector(0, 4, 3), angle = Angle(0, 0, 0) }
|
|
}
|
|
|
|
function SWEP:Initialize()
|
|
self.BaseClass.Initialize(self)
|
|
|
|
if self:GetOwner() == MySelf then
|
|
hook.Add("RenderScene", self, self.RenderScene)
|
|
end
|
|
end
|
|
|
|
function SWEP:DrawWeaponSelection(x, y, w, h, alpha)
|
|
self:BaseDrawWeaponSelection(x, y, w, h, alpha)
|
|
end
|
|
|
|
local w, h = 320, 256
|
|
local x, y = -w / 2, -h / 2
|
|
local CamPos = Vector(8, -4, -2)
|
|
local CamAng = Angle(180, -28, 90)
|
|
local CamScale = 0.025
|
|
local CamData = {x = 0, y = 0, w = h * 2, h = h * 2, drawhud = false, drawmonitors = false, drawviewmodel = false, aspectratio = w / h}
|
|
local rt = GetRenderTarget("prop_camera", w * 2, h * 2)
|
|
local matRT = Material("prop_camera")
|
|
local matStatic = Material("zombiesurvival/filmgrain/filmgrain")
|
|
local matNoSignal = Material("effects/tvscreen_noise003a")
|
|
function SWEP:PostDrawViewModel(vm)
|
|
self.BaseClass.PostDrawViewModel(self, vm)
|
|
|
|
if not vm or not vm:IsValid() then return end
|
|
|
|
local boneid = vm:LookupBone("ValveBiped.Bip01_R_Hand")
|
|
if not boneid or boneid == 0 then return end
|
|
|
|
local bpos, bang = vm:GetBonePositionMatrixed(boneid)
|
|
|
|
bpos, bang = LocalToWorld(CamPos, CamAng, bpos, bang)
|
|
|
|
cam.Start3D2D(bpos, bang, CamScale)
|
|
|
|
surface.SetDrawColor(255, 255, 255, 255)
|
|
|
|
local camera = self:GetCamera()
|
|
if camera:IsValid() then
|
|
matRT:SetTexture("$basetexture", rt)
|
|
surface.SetMaterial(matRT)
|
|
surface.DrawTexturedRect(x, y, w, h)
|
|
|
|
surface.SetDrawColor(30, 30, 30, 200)
|
|
surface.SetMaterial(matStatic)
|
|
surface.DrawTexturedRectUV(x, y, w, h, 2, 2, 0, 0)
|
|
else
|
|
surface.SetMaterial(matNoSignal)
|
|
surface.DrawTexturedRect(x, y, w, h)
|
|
end
|
|
|
|
cam.End3D2D()
|
|
end
|
|
|
|
function SWEP:RenderScene(origin, angles, fov)
|
|
if FROM_CAMERA then return end
|
|
|
|
local camera = self:GetCamera()
|
|
if not camera:IsValid() then return end
|
|
|
|
FROM_CAMERA = camera
|
|
|
|
CamData.origin = camera:GetPos() + camera:GetUp() * -16
|
|
CamData.angles = angles
|
|
|
|
local originalRT = render.GetRenderTarget()
|
|
render.SetRenderTarget(rt)
|
|
render.RenderView(CamData)
|
|
render.SetRenderTarget(originalRT)
|
|
|
|
FROM_CAMERA = nil
|
|
end
|
|
|
|
function SWEP:Draw3DHUD(vm, pos, ang)
|
|
end
|
|
|
|
function SWEP:Draw2DHUD()
|
|
end
|