added brightness

color is now 0-255
fixed color panel not updating properties
fixed color alpha and material for both gmod 12 and 13, but scale does still not work in gmod 13

git-svn-id: http://gmodcapsadmin.googlecode.com/svn/trunk/addons/pac3@44 047d434e-d786-fb00-e516-99c5e643cd71
This commit is contained in:
CapsAdmin 2012-06-05 10:34:02 +00:00
parent 4ee07ac035
commit 2446cadb23
6 changed files with 71 additions and 22 deletions

View File

@ -1,7 +1,9 @@
function pac.PrePlayerDraw(ply)
if not ply:IsPlayer() then return end
for key, part in pairs(pac.GetParts()) do
if
part.ClassName ~= "player" and
not part:IsHidden() and
not part.Screenspace and
not part.Translucent and
@ -9,6 +11,14 @@ function pac.PrePlayerDraw(ply)
not part:HasParent()
then
part:Draw("OnDraw")
end
end
for key, part in pairs(pac.GetParts()) do
if
part.ClassName == "player" and
not part:IsHidden()
then
part:Draw("PrePlayerDraw")
end
end
@ -17,8 +27,10 @@ pac.AddHook("PrePlayerDraw")
function pac.PostPlayerDraw(ply)
if not ply:IsPlayer() then return end
for key, part in pairs(pac.GetParts()) do
if
part.ClassName ~= "player" and
not part:IsHidden() and
not part.Screenspace and
not part.Translucent and
@ -26,6 +38,14 @@ function pac.PostPlayerDraw(ply)
not part:HasParent()
then
part:Draw("OnDraw")
end
end
for key, part in pairs(pac.GetParts()) do
if
part.ClassName == "player" and
not part:IsHidden()
then
part:Draw("PostPlayerDraw")
end
end

View File

@ -16,14 +16,14 @@ local function checkfield(tbl, key, def)
end
function class.GetSet(tbl, name, def)
tbl["Set" .. name] = function(self, var) self[name] = var end
tbl["Get" .. name] = function(self, var) return self[name] end
tbl["Set" .. name] = tbl["Set" .. name] or function(self, var) self[name] = var end
tbl["Get" .. name] = tbl["Get" .. name] or function(self, var) return self[name] end
tbl[name] = def
end
function class.IsSet(tbl, name, def)
tbl["Set" .. name] = function(self, var) self[name] = var end
tbl["Is" .. name] = function(self, var) return self[name] end
tbl["Set" .. name] = tbl["Set" .. name] or function(self, var) self[name] = var end
tbl["Is" .. name] = tbl["Is" .. name] or function(self, var) return self[name] end
tbl[name] = def
end

View File

@ -13,12 +13,15 @@ pac.StartStorableVars()
pac.GetSet(PART, "Sequence", 1)
pac.GetSet(PART, "Material", "")
pac.GetSet(PART, "Color", Vector(255, 255, 255))
pac.GetSet(PART, "Brightness", 1)
pac.GetSet(PART, "Alpha", 1)
pac.GetSet(PART, "Scale", Vector(1,1,1))
pac.GetSet(PART, "Size", 1)
pac.GetSet(PART, "Model", "models/props_junk/watermelon01.mdl")
pac.EndStorableVars()
PART.Colorf = Vector(1,1,1)
pac.GetSet(PART, "Entity", NULL)
function PART:Initialize()
@ -149,9 +152,18 @@ function PART:OnDraw(owner, pos, ang)
end
end
if self.Colorf then render.SetColorModulation(self.Colorf.r, self.Colorf.g, self.Colorf.b) end
if self.Colorf then
render.SetColorModulation(self.Colorf.r * self.Brightness, self.Colorf.g * self.Brightness, self.Colorf.b * self.Brightness)
end
if self.Alpha then render.SetBlend(self.Alpha) end
if self.Materialm then if net then render.MaterialOverride(self.Materialm) else SetMaterialOverride(self.Materialm) end end
if net then
render.MaterialOverride(self.Material ~= "" and self.Materialm or nil)
else
SetMaterialOverride(self.Material ~= "" and self.Materialm or nil)
end
if self.Fullbright then
render.SuppressEngineLighting(true)
@ -219,7 +231,7 @@ function PART:SetColor(var)
var = var or Vector()
self.Color = var
self.Colorf = Vector(var.r, var.g, var.b) / 255
self.Colorf = (Vector(var.r, var.g, var.b) / 255) * self.Brightness
end
function PART:SetMaterial(var)

View File

@ -14,6 +14,7 @@ function PART:Initialize()
pac.GetSet(self, "Hide", false)
pac.GetSet(self, "Material", "")
pac.GetSet(self, "Color", Vector(255, 255, 255))
pac.GetSet(self, "Brightness", 1)
pac.GetSet(self, "Alpha", 1)
pac.GetSet(self, "Scale", Vector(1,1,1))
pac.GetSet(self, "Size", 1)
@ -66,17 +67,20 @@ function PART:GetOwner()
end
function PART:UpdateScale(owner)
owner:InvalidateBoneCache()
owner:SetModelScale(self.Scale * self.Size)
owner:SetupBones()
--print(self.Scale, self.Size)
end
function PART:SetSize(var)
self.Size = var
self:UpdateScale()
self:UpdateScale(self:GetOwner())
end
function PART:SetScale(var)
self.Scale = var
self:UpdateScale()
self:UpdateScale(self:GetOwner())
end
PART.Colorf = Vector(1,1,1)
@ -85,7 +89,7 @@ function PART:SetColor(var)
var = var or Vector(255, 255, 255)
self.Color = var
self.Colorf = Vector(var.r, var.g, var.b) / 255
self.Colorf = (Vector(var.r, var.g, var.b) / 255)
end
function PART:SetMaterial(var)
@ -130,21 +134,23 @@ function PART:UpdateWeaponDraw(owner)
end
function PART:UpdateColor(owner)
if net then
owner:SetColor(Color(self.Color.r, self.Color.g, self.Color.b, math.ceil(self.Alpha * 255)))
else
owner:SetColor(self.Color.r, self.Color.g, self.Color.b, math.ceil(self.Alpha * 255))
end
render.SetColorModulation(self.Colorf.r * self.Brightness, self.Colorf.g * self.Brightness, self.Colorf.b * self.Brightness)
render.SetBlend(self.Alpha)
end
function PART:UpdateMaterial(owner)
owner:SetMaterial(self.Material)
--owner:SetMaterial(self.Material)
if not self.Materialm then return end
if net then
render.MaterialOverride(self.Materialm)
else
SetMaterialOverride(self.Materialm)
end
end
function PART:UpdateAll(owner)
self:UpdateScale(owner)
--self:UpdateScale(owner)
self:UpdateMaterial(owner)
self:UpdateColor(owner)
end
@ -163,6 +169,12 @@ end
function PART:PostPlayerDraw(owner, pos, ang)
render.SetBlend(1)
render.SetColorModulation(1,1,1)
if net then
render.MaterialOverride()
else
SetMaterialOverride(0)
end
self:EndClipping()
end

View File

@ -41,6 +41,7 @@ pace.PropertyOrder =
"Size",
"Scale",
"Color",
"Brightness",
"Alpha",
"Min",
"Max",

View File

@ -521,14 +521,14 @@ do -- vector
num = tonumber(num) or 0
num = math.Round(num)
num = math.max(num, 0)
num = math.Clamp(num, 0, 255)
return tostring(num)
end,
function(self)
local frm = vgui.Create("DFrame")
frm:SetSize(100, 100)
frm:SetSize(200, 200)
frm:Center()
frm:MakePopup()
frm:SetTitle("")
@ -540,7 +540,9 @@ do -- vector
function clr.Think()
if net then
local clr = clr:GetColor() or Color(255, 255, 255, 255)
self.OnValueChanged(Vector(clr.r, clr.g, clr.b))
local vec = Vector(clr.r, clr.g, clr.b)
self.OnValueChanged(vec)
self:SetValue(vec)
else
if
clr.ColorCube:GetDragging() or
@ -548,7 +550,9 @@ do -- vector
clr.RGBBar:GetDragging()
then
local clr = clr:GetColor() or Color(255, 255, 255, 255)
self.OnValueChanged(Vector(clr.r, clr.g, clr.b))
local vec = Vector(clr.r, clr.g, clr.b)
self.OnValueChanged(vec)
self:SetValue(vec)
end
end
end