mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
156 lines
4.8 KiB
Lua
156 lines
4.8 KiB
Lua
|
|
--[[
|
||
|
|
| This file was obtained through the combined efforts
|
||
|
|
| of Madbluntz & Plymouth Antiquarian Society.
|
||
|
|
|
|
||
|
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||
|
|
| Maloy, DrPepper10 @ RIP, Atle!
|
||
|
|
|
|
||
|
|
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||
|
|
--]]
|
||
|
|
|
||
|
|
local PANEL = {}
|
||
|
|
|
||
|
|
function PANEL:Init()
|
||
|
|
local margin = SScaleMin(10 / 3)
|
||
|
|
local smallerIconSize = SScaleMin(16 / 3)
|
||
|
|
local parent = self:GetParent()
|
||
|
|
|
||
|
|
self:SetSize(parent:GetWide() * 0.5, parent:GetTall())
|
||
|
|
self:Dock(LEFT)
|
||
|
|
|
||
|
|
local imgBackground = self:Add("DImage")
|
||
|
|
local invImage = LocalPlayer():GetFactionVar("inventoryImage", "materials/willardnetworks/tabmenu/inventory/backgrounds/street.png")
|
||
|
|
imgBackground:SetImage(invImage)
|
||
|
|
imgBackground:SetKeepAspect(true)
|
||
|
|
imgBackground:Dock(FILL)
|
||
|
|
imgBackground:SetWide(self:GetWide() * 0.65)
|
||
|
|
|
||
|
|
local statusArea = self:Add("Panel")
|
||
|
|
statusArea:Dock(RIGHT)
|
||
|
|
statusArea:SetWide(self:GetWide() * 0.35)
|
||
|
|
statusArea.Paint = function( this, w, h )
|
||
|
|
surface.SetDrawColor(Color(255, 255, 255, 10))
|
||
|
|
surface.DrawRect(0, 0, w, h )
|
||
|
|
end
|
||
|
|
|
||
|
|
local innerStatus = statusArea:Add("Panel")
|
||
|
|
innerStatus:SetSize(statusArea:GetWide() - (margin * 2), statusArea:GetTall())
|
||
|
|
innerStatus:Dock(FILL)
|
||
|
|
innerStatus:DockMargin(margin * 2, 0, margin * 2, 0)
|
||
|
|
|
||
|
|
local function CreateTitle(parent2, text)
|
||
|
|
parent2:Dock(TOP)
|
||
|
|
parent2:DockMargin(0, margin * 2 - (margin * 0.5), 0, margin * 0.5, 0)
|
||
|
|
parent2:SetText(text)
|
||
|
|
parent2:SetContentAlignment(4)
|
||
|
|
parent2:SetFont("MenuFontLargerNoClamp")
|
||
|
|
parent2:SizeToContents()
|
||
|
|
end
|
||
|
|
|
||
|
|
local function CreateSubBar(parent3, iconImage, title, text, iconW, iconH)
|
||
|
|
local SScaleMin25 = SScaleMin(25 / 3)
|
||
|
|
parent3:Dock(TOP)
|
||
|
|
parent3:DockMargin(0, margin * 0.5, 0, 0)
|
||
|
|
parent3:SetSize(innerStatus:GetWide(), SScaleMin25)
|
||
|
|
|
||
|
|
local leftSideSub = parent3:Add("Panel")
|
||
|
|
leftSideSub:Dock(LEFT)
|
||
|
|
leftSideSub:SetSize(parent3:GetWide() * 0.65, SScaleMin25)
|
||
|
|
|
||
|
|
local rightSideSub = parent3:Add("Panel")
|
||
|
|
rightSideSub:Dock(FILL)
|
||
|
|
rightSideSub:SetSize(parent3:GetWide() * 0.35, SScaleMin25)
|
||
|
|
|
||
|
|
local iconPanel = leftSideSub:Add("Panel")
|
||
|
|
iconPanel:Dock(LEFT)
|
||
|
|
iconPanel:SetSize(iconW, parent3:GetTall())
|
||
|
|
|
||
|
|
local icon = iconPanel:Add("DImage")
|
||
|
|
icon:SetSize(iconW, iconH)
|
||
|
|
icon:SetImage(iconImage)
|
||
|
|
icon:SetPos(0, iconPanel:GetTall() * 0.5 - icon:GetTall() * 0.5)
|
||
|
|
|
||
|
|
local leftTitle = leftSideSub:Add("DLabel")
|
||
|
|
leftTitle:SetFont("MenuFontLargerNoClamp")
|
||
|
|
leftTitle:SetText(title or "")
|
||
|
|
leftTitle:SetContentAlignment(4)
|
||
|
|
leftTitle:Dock(LEFT)
|
||
|
|
leftTitle:DockMargin(margin, 0, 0, 0)
|
||
|
|
leftTitle:SizeToContents()
|
||
|
|
|
||
|
|
local rightText = rightSideSub:Add("DLabel")
|
||
|
|
rightText:SetFont("MenuFontLargerNoClamp")
|
||
|
|
rightText:SetText(text or "")
|
||
|
|
rightText:SetContentAlignment(6)
|
||
|
|
rightText:Dock(RIGHT)
|
||
|
|
rightText:SizeToContents()
|
||
|
|
end
|
||
|
|
|
||
|
|
local statusTitle = innerStatus:Add("DLabel")
|
||
|
|
CreateTitle(statusTitle, "STATUT")
|
||
|
|
|
||
|
|
local hp = innerStatus:Add("Panel")
|
||
|
|
CreateSubBar(hp, "willardnetworks/hud/cross.png", "Vie", LocalPlayer():Health(), smallerIconSize, smallerIconSize)
|
||
|
|
|
||
|
|
local armor = innerStatus:Add("Panel")
|
||
|
|
CreateSubBar(armor, "willardnetworks/hud/shield.png", "Armure", LocalPlayer():Armor(), smallerIconSize, smallerIconSize)
|
||
|
|
|
||
|
|
hook.Run("AdjustInnerStatusPanel", innerStatus, CreateTitle, CreateSubBar)
|
||
|
|
|
||
|
|
self.model = imgBackground:Add("ixModelPanel")
|
||
|
|
self.model:Dock(FILL)
|
||
|
|
self.model:SetFOV(ScrW() > 1920 and 50 or 40)
|
||
|
|
self.model:SetModel(LocalPlayer():GetModel(), LocalPlayer():GetSkin(), true)
|
||
|
|
|
||
|
|
local rotatePanel = self:Add("Panel")
|
||
|
|
rotatePanel:Dock(BOTTOM)
|
||
|
|
rotatePanel:SetTall(SScaleMin(50 / 3))
|
||
|
|
|
||
|
|
self.rLeft = rotatePanel:Add("DButton")
|
||
|
|
self.rLeft:Dock(LEFT)
|
||
|
|
self.rLeft:SetWide(imgBackground:GetWide() / 2)
|
||
|
|
self.rLeft:SetText("")
|
||
|
|
self:CreateArrow(self.rLeft, imgBackground, "back_arrow")
|
||
|
|
|
||
|
|
self.rRight = rotatePanel:Add("DButton")
|
||
|
|
self.rRight:Dock(FILL)
|
||
|
|
self.rRight:SetText("")
|
||
|
|
self:CreateArrow(self.rRight, imgBackground, "right-arrow")
|
||
|
|
|
||
|
|
ix.gui.inventoryModel = self.model
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:CreateArrow(parent, imgBackground, path)
|
||
|
|
local s5 = SScaleMin(5 / 3)
|
||
|
|
local s40 = SScaleMin(40 / 3)
|
||
|
|
local imgbgWD2 = imgBackground:GetWide() / 2
|
||
|
|
local lrMargin = (imgbgWD2 - s40) * 0.5
|
||
|
|
|
||
|
|
local arrow = parent:Add("DImage")
|
||
|
|
arrow:Dock(FILL)
|
||
|
|
arrow:DockMargin(lrMargin, s5, lrMargin, s5)
|
||
|
|
arrow:SetImage("willardnetworks/mainmenu/"..path..".png")
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:Think()
|
||
|
|
if !istable(ix.gui.inventoryModel) then
|
||
|
|
ix.gui.inventoryModel = self.model
|
||
|
|
end
|
||
|
|
|
||
|
|
if !self.rLeft or self.rLeft and !IsValid(self.rLeft) then return end
|
||
|
|
if !self.rRight or self.rRight and !IsValid(self.rRight) then return end
|
||
|
|
|
||
|
|
if self.rLeft:IsDown() then
|
||
|
|
if IsValid(self.model.Entity) then
|
||
|
|
self.model.Entity:SetAngles(self.model.Entity:GetAngles() - Angle(0, 1, 0))
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
if self.rRight:IsDown() then
|
||
|
|
if IsValid(self.model.Entity) then
|
||
|
|
self.model.Entity:SetAngles(self.model.Entity:GetAngles() + Angle(0, 1, 0))
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
vgui.Register("CharFrame", PANEL, "Panel")
|