Code:
local PANEL = {}
function PANEL:Init()
self:SetTitle("Bodygroup preview")
self:SetSize(700, 500)
self:Center()
self.body_group = 0
self.body_group_val = 0
self:Populate()
end
function PANEL:Populate()
local list = vgui.Create("DPanelList", self)
list:SetPos(2, 24)
list:SetSize(300, 474)
list:SetSpacing(5)
list:SetPadding(5)
--list.Paint = function() draw.RoundedBox(0, 0, 0, 300, 500, Color(64,64,64)) end
local model = vgui.Create("DModelPanel", self)
model:SetPos(list:GetWide()+2, 24)
model:SetSize(396, 474)
model:SetModel("models/tnb/citizens/male_07.mdl")
local bg1_len = #model:GetEntity():GetBodyGroups()[1]["submodels"]
local bg_slider2 = vgui.Create("DNumSlider", list)
bg_slider2:SetText("Bodygroup value")
bg_slider2:SetSize(list:GetWide()-10, 20)
bg_slider2:SetMin(0)
bg_slider2:SetMax((bg1_len > -1 and bg1_len or 0))
bg_slider2:SetDecimals(0)
bg_slider2:SetValue(0)
bg_slider2.OnValueChanged = function(panel, val)
val = math.Round(val)
local ent = model:GetEntity()
ent:SetBodygroup(self.body_group, val)
self.body_group_val = val
end
local bg_slider1 = vgui.Create("DNumSlider", list)
bg_slider1:SetText("Bodygroup")
bg_slider1:SetSize(list:GetWide()-10, 20)
bg_slider1:SetMin(0)
bg_slider1:SetMax(#model:GetEntity():GetBodyGroups()-1)
bg_slider1:SetDecimals(0)
bg_slider1:SetValue(0)
bg_slider1.OnValueChanged = function(panel, val)
val = math.Round(val)
local ent = model:GetEntity()
local bgs = ent:GetBodyGroups()
bgs = #bgs[val+1]["submodels"]
bg_slider2:SetMax(bgs)
self.body_group = val
bg_slider2:SetValue(ent:GetBodygroup(val))
end
local m_tentry = vgui.Create("DTextEntry", list)
m_tentry:SetSize(list:GetWide()-10, 20)
local m_button = vgui.Create("DButton", list)
m_button:SetText("Set model")
m_button:SetSize(list:GetWide()-10, 20)
m_button.DoClick = function()
model:SetModel(m_tentry:GetValue())
local ent = model:GetEntity()
local bgs = #ent:GetBodyGroups()
bg_slider1:SetMax(bgs-1)
end
list:AddItem(m_tentry)
list:AddItem(m_button)
list:AddItem(bg_slider1)
list:AddItem(bg_slider2)
end
vgui.Register("bg", PANEL, "DFrame")
local panel = vgui.Create("bg")
panel:MakePopup()