mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
493 lines
16 KiB
Lua
493 lines
16 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 = {}
|
||
|
|
|
||
|
|
AccessorFunc(PANEL, "money", "Money", FORCE_NUMBER)
|
||
|
|
|
||
|
|
function PANEL:Init()
|
||
|
|
self:DockPadding(1, 1, 1, 1)
|
||
|
|
self:SetTall(SScaleMin(64 / 3))
|
||
|
|
|
||
|
|
local textPanel = self:Add("EditablePanel")
|
||
|
|
textPanel:Dock(TOP)
|
||
|
|
textPanel:SetTall(SScaleMin(18 / 3))
|
||
|
|
|
||
|
|
self.moneyLabel = textPanel:Add("DLabel")
|
||
|
|
self.moneyLabel:SetFont("MenuFontNoClamp")
|
||
|
|
self.moneyLabel:SetText("")
|
||
|
|
self.moneyLabel:SetTextInset(SScaleMin(2 / 3), 0)
|
||
|
|
|
||
|
|
self.creditText = textPanel:Add("DLabel")
|
||
|
|
self.creditText:Dock(LEFT)
|
||
|
|
self.creditText:SetFont("MenuFontNoClamp")
|
||
|
|
self.creditText:SetText(string.utf8upper(" Chips"))
|
||
|
|
self.creditText:SetTextInset(SScaleMin(2 / 3), 0)
|
||
|
|
self.creditText:SizeToContents()
|
||
|
|
|
||
|
|
local amountPanel = self:Add("EditablePanel")
|
||
|
|
amountPanel:Dock(FILL)
|
||
|
|
amountPanel.Paint = function(this, w, h)
|
||
|
|
surface.SetDrawColor(35, 35, 35, 85)
|
||
|
|
surface.DrawRect(1, 1, w - 2, h - 2)
|
||
|
|
|
||
|
|
surface.SetDrawColor(80, 80, 80, 255)
|
||
|
|
surface.DrawOutlinedRect(1, 1, w - 2, h - 2)
|
||
|
|
end
|
||
|
|
|
||
|
|
self.amountEntry = amountPanel:Add("DTextEntry")
|
||
|
|
self.amountEntry:SetFont("MenuFontNoClamp")
|
||
|
|
self.amountEntry:Dock(FILL)
|
||
|
|
self.amountEntry:SetNumeric(true)
|
||
|
|
self.amountEntry:SetValue("0")
|
||
|
|
self.amountEntry.Paint = function(this, w, h)
|
||
|
|
this:DrawTextEntryText( Color(255, 255, 255, 255), this:GetHighlightColor(), this:GetCursorColor() )
|
||
|
|
end
|
||
|
|
|
||
|
|
self.transferButton = amountPanel:Add("DButton")
|
||
|
|
self.transferButton:SetFont("ixIconsMedium")
|
||
|
|
self.transferButton:Dock(LEFT)
|
||
|
|
self.transferButton:SetWide(SScaleMin(50 / 3))
|
||
|
|
self:SetLeft(false)
|
||
|
|
self.transferButton.DoClick = function()
|
||
|
|
local amount = math.max(0, math.Round(tonumber(self.amountEntry:GetValue()) or 0))
|
||
|
|
self.amountEntry:SetValue("0")
|
||
|
|
|
||
|
|
if (amount != 0) then
|
||
|
|
self:OnTransfer(amount)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
self.bNoBackgroundBlur = true
|
||
|
|
self.transferButton.Paint = nil
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:SetLeft(bValue)
|
||
|
|
if (bValue) then
|
||
|
|
self.transferButton:Dock(RIGHT)
|
||
|
|
self.transferButton:SetText("t")
|
||
|
|
else
|
||
|
|
self.transferButton:Dock(LEFT)
|
||
|
|
self.amountEntry:DockMargin(SScaleMin(10 / 3), 0, 0, 0)
|
||
|
|
self.transferButton:SetText("s")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:SetMoney(money)
|
||
|
|
self.money = math.max(math.Round(tonumber(money) or 0), 0)
|
||
|
|
|
||
|
|
self.moneyLabel:SetText(money)
|
||
|
|
self.moneyLabel:Dock(LEFT)
|
||
|
|
self.moneyLabel:SizeToContents()
|
||
|
|
self.moneyLabel:SetTextColor(Color(255, 204, 0, 255))
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:OnTransfer(amount)
|
||
|
|
end
|
||
|
|
|
||
|
|
vgui.Register("ixStorageMoney", PANEL, "EditablePanel")
|
||
|
|
|
||
|
|
DEFINE_BASECLASS("EditablePanel")
|
||
|
|
PANEL = {}
|
||
|
|
|
||
|
|
AccessorFunc(PANEL, "fadeTime", "FadeTime", FORCE_NUMBER)
|
||
|
|
AccessorFunc(PANEL, "frameMargin", "FrameMargin", FORCE_NUMBER)
|
||
|
|
AccessorFunc(PANEL, "storageID", "StorageID", FORCE_NUMBER)
|
||
|
|
|
||
|
|
local dividerWidth = SScaleMin(1920 / 3)
|
||
|
|
local dividerHeight = SScaleMin(1080 / 3)
|
||
|
|
local halfWidth = dividerWidth * 0.5
|
||
|
|
|
||
|
|
function PANEL:Init()
|
||
|
|
if (IsValid(ix.gui.openedStorage)) then
|
||
|
|
ix.gui.openedStorage:Remove()
|
||
|
|
end
|
||
|
|
|
||
|
|
ix.gui.openedStorage = self
|
||
|
|
|
||
|
|
self:SetSize(ScrW(), ScrH())
|
||
|
|
self:SetFadeTime(0.25)
|
||
|
|
self:SetFrameMargin(4)
|
||
|
|
|
||
|
|
local background = self:Add("EditablePanel")
|
||
|
|
background:SetSize(ScrW(), ScrH())
|
||
|
|
background.Paint = function(this, w, h)
|
||
|
|
surface.SetDrawColor(Color(63, 58, 115, 220))
|
||
|
|
surface.DrawRect(0, 0, w, h)
|
||
|
|
|
||
|
|
Derma_DrawBackgroundBlur( this, 1 )
|
||
|
|
end
|
||
|
|
|
||
|
|
background:MakePopup()
|
||
|
|
|
||
|
|
self.dividerPanel = background:Add("EditablePanel")
|
||
|
|
self.dividerPanel:SetSize(dividerWidth, dividerHeight)
|
||
|
|
self.dividerPanel:Center()
|
||
|
|
|
||
|
|
self.leftSide = self.dividerPanel:Add("EditablePanel")
|
||
|
|
self.leftSide:Dock(LEFT)
|
||
|
|
self.leftSide:SetSize(self.dividerPanel:GetWide() * 0.5, dividerHeight)
|
||
|
|
self.leftSide.Paint = function(this, w, h)
|
||
|
|
surface.SetDrawColor(Color(111, 111, 136, (255 / 100 * 30)))
|
||
|
|
surface.DrawLine(w - 1, SScaleMin(50 / 3), w - 1, h)
|
||
|
|
end
|
||
|
|
|
||
|
|
self.storageIcon = self.dividerPanel:Add("DImage")
|
||
|
|
self.storageIcon:SetSize(SScaleMin(90 / 3), SScaleMin(90 / 3))
|
||
|
|
self.storageIcon:SetImage("willardnetworks/storage/icon.png")
|
||
|
|
self.storageIcon:Center()
|
||
|
|
|
||
|
|
local topbar = background:Add("EditablePanel")
|
||
|
|
topbar:SetSize(background:GetWide(), SScaleMin(50 / 3))
|
||
|
|
topbar:Dock(TOP)
|
||
|
|
topbar.Paint = function( this, w, h )
|
||
|
|
surface.SetDrawColor(0, 0, 0, 130)
|
||
|
|
surface.DrawRect(0, 0, w, h)
|
||
|
|
end
|
||
|
|
|
||
|
|
self.titleText = topbar:Add("DLabel")
|
||
|
|
self.titleText:SetFont("CharCreationBoldTitleNoClamp")
|
||
|
|
self.titleText:SetText("Storage Container")
|
||
|
|
self.titleText:SetContentAlignment(5)
|
||
|
|
self.titleText:SizeToContents()
|
||
|
|
self.titleText:Center()
|
||
|
|
|
||
|
|
local exit = topbar:Add("DImageButton")
|
||
|
|
exit:SetImage("willardnetworks/tabmenu/navicons/exit.png")
|
||
|
|
exit:SetSize(SScaleMin(20 / 3), SScaleMin(20 / 3))
|
||
|
|
exit:DockMargin(0, SScaleMin(15 / 3), SScaleMin(20 / 3), SScaleMin(15 / 3))
|
||
|
|
exit:Dock(RIGHT)
|
||
|
|
exit.DoClick = function()
|
||
|
|
self:Remove()
|
||
|
|
surface.PlaySound("helix/ui/press.wav")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:CreateContents(data, entity)
|
||
|
|
local isEquipSlots = data and data.vars and data.vars.equipSlots or false
|
||
|
|
|
||
|
|
self.storageInventory = self.dividerPanel:Add(isEquipSlots and "ixEquipSlots" or "ixInventory")
|
||
|
|
self.storageInventory.bNoBackgroundBlur = true
|
||
|
|
self.storageInventory:MoveToBack()
|
||
|
|
self.storageInventory.Close = function(this)
|
||
|
|
net.Start("ixStorageClose")
|
||
|
|
net.SendToServer()
|
||
|
|
self:Remove()
|
||
|
|
end
|
||
|
|
|
||
|
|
hook.Run("CreateStoreViewContents", self, data, entity)
|
||
|
|
if entity and IsValid(entity) then
|
||
|
|
if ix.plugin.list["inventoryslots"] and entity.GetCharacter then
|
||
|
|
if entity:GetCharacter() and ix.plugin.list["inventoryslots"].noEquipFactions[entity:GetCharacter():GetFaction()] then
|
||
|
|
self.storageInventory.isNoEquipFaction = true
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
if !isEquipSlots then
|
||
|
|
self.storageMoney = self.dividerPanel:Add("ixStorageMoney")
|
||
|
|
self.storageMoney:SetVisible(false)
|
||
|
|
self.storageMoney.OnTransfer = function(_, amount)
|
||
|
|
net.Start("ixStorageMoneyTake")
|
||
|
|
net.WriteUInt(self.storageID, 32)
|
||
|
|
net.WriteUInt(amount, 32)
|
||
|
|
net.SendToServer()
|
||
|
|
end
|
||
|
|
|
||
|
|
if (self.storageMoney.creditText) then
|
||
|
|
self.storageMoney.creditText:SetText(" CHIPS IN STORAGE")
|
||
|
|
self.storageMoney.creditText:SizeToContents()
|
||
|
|
self.storageMoney.creditText:Dock(LEFT)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
ix.gui.inv1 = self.leftSide:Add("ixInventory")
|
||
|
|
ix.gui.inv1.bNoBackgroundBlur = true
|
||
|
|
ix.gui.inv1.Close = function(this)
|
||
|
|
net.Start("ixStorageClose")
|
||
|
|
net.SendToServer()
|
||
|
|
self:Remove()
|
||
|
|
end
|
||
|
|
|
||
|
|
ix.gui.equipSlots = self.leftSide:Add("ixEquipSlots")
|
||
|
|
|
||
|
|
self.localMoney = ix.gui.inv1:Add("ixStorageMoney")
|
||
|
|
self.localMoney:SetVisible(false)
|
||
|
|
self.localMoney:SetLeft(true)
|
||
|
|
self.localMoney.OnTransfer = function(_, amount)
|
||
|
|
net.Start("ixStorageMoneyGive")
|
||
|
|
net.WriteUInt(self.storageID, 32)
|
||
|
|
net.WriteUInt(amount, 32)
|
||
|
|
net.SendToServer()
|
||
|
|
end
|
||
|
|
|
||
|
|
self:SetAlpha(0)
|
||
|
|
self:AlphaTo(255, self:GetFadeTime())
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:Think()
|
||
|
|
if self.bagFrame and IsValid(self.bagFrame) then
|
||
|
|
self.bagFrame:MoveToFront()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:OnChildAdded(panel)
|
||
|
|
panel:SetPaintedManually(true)
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:OnKeyCodePressed(key)
|
||
|
|
if (key == KEY_TAB and IsValid(self)) then
|
||
|
|
self:Remove()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:SetLocalInventory(inventory)
|
||
|
|
if (IsValid(ix.gui.inv1) and !IsValid(ix.gui.menu)) then
|
||
|
|
ix.gui.inv1:SetInventory(inventory)
|
||
|
|
|
||
|
|
ix.gui.inv1:Center()
|
||
|
|
|
||
|
|
local x2, y2 = ix.gui.inv1:GetPos()
|
||
|
|
|
||
|
|
self.localMoney:Dock(NODOCK)
|
||
|
|
self.localMoney:SetWide(ix.gui.inv1:GetWide())
|
||
|
|
self.localMoney:SetPos(0, ix.gui.inv1:GetTall() + SScaleMin(10 / 3))
|
||
|
|
|
||
|
|
local padding = SScaleMin(10 / 3)
|
||
|
|
|
||
|
|
ix.gui.inv1.invTitleIcon = self.dividerPanel:Add("DImage")
|
||
|
|
ix.gui.inv1.invTitleIcon:SetImage("willardnetworks/tabmenu/navicons/inventory.png")
|
||
|
|
ix.gui.inv1.invTitleIcon:SetSize(SScaleMin(19 / 3), SScaleMin(17 / 3))
|
||
|
|
ix.gui.inv1.invTitleIcon:SetPos(x2, y2 - ix.gui.inv1.invTitleIcon:GetTall() - padding)
|
||
|
|
|
||
|
|
ix.gui.inv1.invTitle = self.dividerPanel:Add("DLabel")
|
||
|
|
ix.gui.inv1.invTitle:SetFont("TitlesFontNoClamp")
|
||
|
|
ix.gui.inv1.invTitle:SetText("Inventory")
|
||
|
|
ix.gui.inv1.invTitle:SizeToContents()
|
||
|
|
ix.gui.inv1.invTitle:SetPos(x2 + SScaleMin(27 / 3), y2 - (ix.gui.inv1.invTitle:GetTall() * 0.8) - padding)
|
||
|
|
ix.gui.inv1:MoveToBack()
|
||
|
|
|
||
|
|
self.changeInv = self.dividerPanel:Add("DButton")
|
||
|
|
self.changeInv:SetFont("MenuFontNoClamp")
|
||
|
|
self.changeInv:SetText("VIEW EQUIP INVENTORY")
|
||
|
|
self.changeInv:SizeToContents()
|
||
|
|
self.changeInv:SetWide(self.changeInv:GetWide() + (padding * 2))
|
||
|
|
self.changeInv:SetPos(x2 + ix.gui.inv1:GetWide() - self.changeInv:GetWide(), y2 - (ix.gui.inv1.invTitle:GetTall() * 0.8) - padding)
|
||
|
|
self.changeInv.DoClick = function()
|
||
|
|
if !ix.gui.inv1 or ix.gui.inv1 and !IsValid(ix.gui.inv1) then return end
|
||
|
|
if !ix.gui.equipSlots or ix.gui.equipSlots and !IsValid(ix.gui.equipSlots) then return end
|
||
|
|
|
||
|
|
if ix.gui.inv1:IsVisible() then
|
||
|
|
ix.gui.inv1:SetVisible(false)
|
||
|
|
ix.gui.inv1.invTitleIcon:SetVisible(false)
|
||
|
|
ix.gui.inv1.invTitle:SetVisible(false)
|
||
|
|
|
||
|
|
ix.gui.equipSlots:SetVisible(true)
|
||
|
|
ix.gui.equipSlots.invTitleIcon:SetVisible(true)
|
||
|
|
ix.gui.equipSlots.invTitle:SetVisible(true)
|
||
|
|
|
||
|
|
local _, y3 = ix.gui.equipSlots:GetPos()
|
||
|
|
self.changeInv:SetText("VIEW DEFAULT INVENTORY")
|
||
|
|
self.changeInv:SizeToContents()
|
||
|
|
self.changeInv:SetWide(self.changeInv:GetWide() + (padding * 2))
|
||
|
|
|
||
|
|
-- Get the new pos if we need the button in the alternate position
|
||
|
|
if (self.changeInv.altPos) then
|
||
|
|
x2, y2 = ix.gui.inv1:GetPos()
|
||
|
|
end
|
||
|
|
|
||
|
|
self.changeInv:SetPos(x2 + ix.gui.inv1:GetWide() - self.changeInv:GetWide(), y3 - (ix.gui.inv1.invTitle:GetTall() * 0.8) - padding)
|
||
|
|
else
|
||
|
|
ix.gui.equipSlots:SetVisible(false)
|
||
|
|
ix.gui.equipSlots.invTitleIcon:SetVisible(false)
|
||
|
|
ix.gui.equipSlots.invTitle:SetVisible(false)
|
||
|
|
|
||
|
|
ix.gui.inv1:SetVisible(true)
|
||
|
|
ix.gui.inv1.invTitleIcon:SetVisible(true)
|
||
|
|
ix.gui.inv1.invTitle:SetVisible(true)
|
||
|
|
|
||
|
|
self.changeInv:SetText("VIEW EQUIP INVENTORY")
|
||
|
|
self.changeInv:SizeToContents()
|
||
|
|
self.changeInv:SetWide(self.changeInv:GetWide() + (padding * 2))
|
||
|
|
|
||
|
|
-- Get the new pos if we need the button in the alternate position
|
||
|
|
if (self.changeInv.altPos) then
|
||
|
|
x2, y2 = ix.gui.inv1:GetPos()
|
||
|
|
end
|
||
|
|
|
||
|
|
self.changeInv:SetPos(x2 + ix.gui.inv1:GetWide() - self.changeInv:GetWide(), y2 - (ix.gui.inv1.invTitle:GetTall() * 0.8) - padding)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:SetEquipInv(inventory)
|
||
|
|
if (IsValid(ix.gui.equipSlots) and !IsValid(ix.gui.menu)) then
|
||
|
|
ix.gui.equipSlots:SetInventory(inventory)
|
||
|
|
ix.gui.equipSlots:PaintParts()
|
||
|
|
ix.gui["inv" .. inventory.id] = ix.gui.equipSlots
|
||
|
|
|
||
|
|
ix.gui.equipSlots:Center()
|
||
|
|
|
||
|
|
local x2, y2 = ix.gui.equipSlots:GetPos()
|
||
|
|
local padding = SScaleMin(10 / 3)
|
||
|
|
|
||
|
|
ix.gui.equipSlots.invTitleIcon = self.dividerPanel:Add("DImage")
|
||
|
|
ix.gui.equipSlots.invTitleIcon:SetImage("willardnetworks/tabmenu/navicons/inventory.png")
|
||
|
|
ix.gui.equipSlots.invTitleIcon:SetSize(SScaleMin(19 / 3), SScaleMin(17 / 3))
|
||
|
|
ix.gui.equipSlots.invTitleIcon:SetPos(x2, y2 - ix.gui.equipSlots.invTitleIcon:GetTall() - padding)
|
||
|
|
|
||
|
|
ix.gui.equipSlots.invTitle = self.dividerPanel:Add("DLabel")
|
||
|
|
ix.gui.equipSlots.invTitle:SetFont("TitlesFontNoClamp")
|
||
|
|
ix.gui.equipSlots.invTitle:SetText("Equip Inventory")
|
||
|
|
ix.gui.equipSlots.invTitle:SizeToContents()
|
||
|
|
ix.gui.equipSlots.invTitle:SetPos(x2 + SScaleMin(27 / 3), y2 - (ix.gui.equipSlots.invTitle:GetTall() * 0.8) - padding)
|
||
|
|
|
||
|
|
ix.gui.equipSlots:MoveToBack()
|
||
|
|
ix.gui.equipSlots:SetVisible(false)
|
||
|
|
ix.gui.equipSlots.invTitleIcon:SetVisible(false)
|
||
|
|
ix.gui.equipSlots.invTitle:SetVisible(false)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:SetLocalMoney(money)
|
||
|
|
if (!self.localMoney:IsVisible()) then
|
||
|
|
self.localMoney:SetVisible(true)
|
||
|
|
ix.gui.inv1:SetTall(ix.gui.inv1:GetTall() + self.localMoney:GetTall() + SScaleMin(10 / 3))
|
||
|
|
end
|
||
|
|
|
||
|
|
self.localMoney:SetMoney(money)
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:SetStorageTitle(title)
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:SetStorageInventory(inventory)
|
||
|
|
local isEquipSlots = inventory and inventory.vars and inventory.vars.equipSlots or false
|
||
|
|
local isStash = inventory and inventory.vars and inventory.vars.isStash or false
|
||
|
|
local isBag = inventory and inventory.vars and inventory.vars.noEquipInv or false
|
||
|
|
local isCardDeck = inventory and inventory.w == 13 and inventory.h == 4 and true or false -- I know this is dumb, but helix has forced my hand.
|
||
|
|
self.storageInventory:SetInventory(inventory)
|
||
|
|
|
||
|
|
if (isEquipSlots) then
|
||
|
|
self.storageInventory:PaintParts()
|
||
|
|
if self.changeInv then self.changeInv:SetVisible(false) end
|
||
|
|
end
|
||
|
|
|
||
|
|
self.storageInventory:SetPos(halfWidth + (halfWidth * (isCardDeck and 0.335 or 0.5)) - self.storageInventory:GetWide() * 0.5, dividerHeight * 0.5 - self.storageInventory:GetTall() * 0.5)
|
||
|
|
|
||
|
|
if (!isEquipSlots) then
|
||
|
|
local x2, y2 = self.storageInventory:GetPos()
|
||
|
|
|
||
|
|
self.storageMoney:Dock(NODOCK)
|
||
|
|
self.storageMoney:SetWide(self.storageInventory:GetWide())
|
||
|
|
self.storageMoney:SetPos(x2, y2 + self.storageInventory:GetTall() + SScaleMin(10 / 3))
|
||
|
|
end
|
||
|
|
|
||
|
|
if (isCardDeck) then -- Force some things to move around.
|
||
|
|
self.leftSide:SetSize(self.dividerPanel:GetWide() * 0.335, dividerHeight)
|
||
|
|
|
||
|
|
ix.gui.inv1:Center()
|
||
|
|
ix.gui.equipSlots:Center()
|
||
|
|
|
||
|
|
local x2, y2 = ix.gui.inv1:GetPos()
|
||
|
|
local padding = SScaleMin(10 / 3)
|
||
|
|
|
||
|
|
ix.gui.inv1.invTitleIcon:SetPos(x2, y2 - ix.gui.inv1.invTitleIcon:GetTall() - padding)
|
||
|
|
ix.gui.inv1.invTitle:SetPos(x2 + SScaleMin(27 / 3), y2 - (ix.gui.inv1.invTitle:GetTall() * 0.8) - padding)
|
||
|
|
|
||
|
|
self.changeInv.altPos = true
|
||
|
|
self.changeInv:SetPos(x2 + ix.gui.inv1:GetWide() - self.changeInv:GetWide(), y2 - (ix.gui.inv1.invTitle:GetTall() * 0.8) - padding)
|
||
|
|
|
||
|
|
x2, y2 = ix.gui.equipSlots:GetPos()
|
||
|
|
|
||
|
|
ix.gui.equipSlots.invTitleIcon:SetPos(x2, y2 - ix.gui.equipSlots.invTitleIcon:GetTall() - padding)
|
||
|
|
ix.gui.equipSlots.invTitle:SetPos(x2 + SScaleMin(27 / 3), y2 - (ix.gui.equipSlots.invTitle:GetTall() * 0.8) - padding)
|
||
|
|
|
||
|
|
self.storageIcon:SetX(self.dividerPanel:GetWide() * 0.335 - (SScaleMin(90 / 3) * 0.5))
|
||
|
|
end
|
||
|
|
|
||
|
|
local x, y = self.storageInventory:GetPos()
|
||
|
|
local padding = SScaleMin(10 / 3)
|
||
|
|
|
||
|
|
local invTitleIcon = self.dividerPanel:Add("DImage")
|
||
|
|
invTitleIcon:SetImage("willardnetworks/mainmenu/content.png")
|
||
|
|
invTitleIcon:SetSize(SScaleMin(16 / 3), SScaleMin(16 / 3))
|
||
|
|
invTitleIcon:SetPos(x, y - invTitleIcon:GetTall() - padding)
|
||
|
|
|
||
|
|
local invTitle = self.dividerPanel:Add("DLabel")
|
||
|
|
invTitle:SetFont("TitlesFontNoClamp")
|
||
|
|
invTitle:SetText("Storage")
|
||
|
|
invTitle:SizeToContents()
|
||
|
|
invTitle:SetPos(x + SScaleMin(27 / 3), y - (invTitle:GetTall() * 0.8) - padding)
|
||
|
|
|
||
|
|
ix.gui["inv" .. inventory:GetID()] = self.storageInventory
|
||
|
|
|
||
|
|
if (inventory.owner and !isStash and !isBag) then
|
||
|
|
self.changeStorageInv = self.dividerPanel:Add("DButton")
|
||
|
|
self.changeStorageInv:SetFont("MenuFontNoClamp")
|
||
|
|
self.changeStorageInv:SetText(!isEquipSlots and "VIEW EQUIP INVENTORY" or "VIEW DEFAULT INVENTORY")
|
||
|
|
self.changeStorageInv:SizeToContents()
|
||
|
|
self.changeStorageInv:SetWide(self.changeStorageInv:GetWide() + (padding * 2))
|
||
|
|
self.changeStorageInv:SetPos(x + self.storageInventory:GetWide() - self.changeStorageInv:GetWide(), y - (invTitle:GetTall() * 0.8) - padding)
|
||
|
|
self.changeStorageInv.DoClick = function()
|
||
|
|
if (!IsValid(ix.gui.menu)) then
|
||
|
|
self.shouldntRunStorage = true
|
||
|
|
|
||
|
|
BaseClass.Remove(self)
|
||
|
|
self.storageInventory:Remove()
|
||
|
|
ix.gui.inv1:Remove()
|
||
|
|
|
||
|
|
net.Start("ixSwitchPlayerInv")
|
||
|
|
net.SendToServer()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:SetStorageMoney(money)
|
||
|
|
if !self.storageMoney then return end
|
||
|
|
|
||
|
|
if (!self.storageMoney:IsVisible()) then
|
||
|
|
self.storageMoney:SetVisible(true)
|
||
|
|
self.storageInventory:SetTall(self.storageInventory:GetTall() + self.storageMoney:GetTall() + SScaleMin(2 / 3))
|
||
|
|
end
|
||
|
|
|
||
|
|
self.storageMoney:SetMoney(money)
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:Paint(width, height)
|
||
|
|
ix.util.DrawBlurAt(0, 0, width, height)
|
||
|
|
|
||
|
|
for _, v in ipairs(self:GetChildren()) do
|
||
|
|
v:PaintManual()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:Remove()
|
||
|
|
self:SetAlpha(255)
|
||
|
|
self:AlphaTo(0, self:GetFadeTime(), 0, function()
|
||
|
|
BaseClass.Remove(self)
|
||
|
|
end)
|
||
|
|
end
|
||
|
|
|
||
|
|
function PANEL:OnRemove()
|
||
|
|
if (!IsValid(ix.gui.menu) and !self.shouldntRunStorage) then
|
||
|
|
self.storageInventory:Remove()
|
||
|
|
ix.gui.inv1:Remove()
|
||
|
|
|
||
|
|
net.Start("ixStorageClose")
|
||
|
|
net.SendToServer()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
vgui.Register("ixStorageView", PANEL, "EditablePanel")
|