So i am using this..
[url]https://github.com/PatrickRatzow/EnhancedAvatarImage[/url]
and this is what it returns...
[IMG]http://i.imgur.com/AzDnb4y.png[/IMG]
(using black background to show whats going on)
heres the code
[code]
local PlayerAvatar = vgui.Create("EnhancedAvatarImage", ItemMain)
PlayerAvatar:SetSize( 64, 64 )
PlayerAvatar:SetPos( 50, 50 )
PlayerAvatar:SetPlayer( LocalPlayer(), 64 )
[/code]
you might want to change rotation to 0, it might be at 45
[QUOTE=gonzalolog;51721008]you might want to change rotation to 0, it might be at 45[/QUOTE]
i have not changed anything about that file other then a bug heres the code
[code]
local PANEL = {};
AccessorFunc(PANEL, "vertices", "Vertices", FORCE_NUMBER) -- so you can call panel:SetVertices and panel:GetRotation
AccessorFunc(PANEL, "rotation", "Rotation", FORCE_NUMBER) -- so you can call panel:SetRotation and panel:GetRotation
function PANEL:Init()
self.rotation = 0;
self.vertices = 4;
self.avatar = vgui.Create("AvatarImage", self);
self.avatar:SetPaintedManually(true);
end
function PANEL:CalculatePoly(w, h)
local poly = {};
local x = w/2;
local y = h/2;
local radius = h/2;
table.insert(poly, { x = x, y = y });
for i = 0, self.vertices do
local a = math.rad((i / self.vertices) * -360) + self.rotation;
table.insert(poly, { x = x + math.sin(a) * radius, y = y + math.cos(a) * radius })
end
local a = math.rad(0)
table.insert(poly, { x = x + math.sin(a) * radius, y = y + math.cos(a) * radius })
self.data = poly;
end
function PANEL:PerformLayout()
self.avatar:SetSize(self:GetWide(), self:GetTall());
self:CalculatePoly(self:GetWide(), self:GetTall());
end
function PANEL:SetPlayer(ply, size)
self.avatar:SetPlayer(ply, size);
end
function PANEL:DrawPoly( w, h )
if (!self.data) then
self:CalculatePoly(w, h);
end
surface.DrawPoly(self.data);
end
function PANEL:Paint(w, h)
render.ClearStencil();
render.SetStencilEnable(true);
render.SetStencilWriteMask(1);
render.SetStencilTestMask(1);
render.SetStencilFailOperation(STENCILOPERATION_REPLACE);
render.SetStencilPassOperation(STENCILOPERATION_ZERO);
render.SetStencilZFailOperation(STENCILOPERATION_ZERO);
render.SetStencilCompareFunction(STENCILCOMPARISONFUNCTION_NEVER);
render.SetStencilReferenceValue(1);
draw.NoTexture();
surface.SetDrawColor(color_white);
self:DrawPoly(w, h);
render.SetStencilFailOperation(STENCILOPERATION_ZERO);
render.SetStencilPassOperation(STENCILOPERATION_REPLACE);
render.SetStencilZFailOperation(STENCILOPERATION_ZERO);
render.SetStencilCompareFunction(STENCILCOMPARISONFUNCTION_EQUAL);
render.SetStencilReferenceValue(1);
self.avatar:PaintManual();
render.SetStencilEnable(false);
render.ClearStencil();
end
vgui.Register("EnhancedAvatarImage", PANEL);
[/code]
Increase the number of vertices to about 32
[QUOTE=James xX;51721049]Increase the number of vertices to about 32[/QUOTE]
ah i did and that worked! Many thanks :D
Sorry, you need to Log In to post a reply to this thread.