summaryrefslogtreecommitdiff
path: root/entities/weapons/rad_inv/shared.lua
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2016-05-30 21:01:18 -0400
committerAlexander Pickering <alexandermpickering@gmail.com>2016-05-30 21:01:18 -0400
commitd62058fcdea5fc6736a2a373f47dc6c14c70c319 (patch)
tree79a1325190e3f1f1b6d6a2dbcdfc1ba3fa866ac9 /entities/weapons/rad_inv/shared.lua
parentc38f00182ba6c282806eecb39a42e64d5feafa37 (diff)
downloadredead-d62058fcdea5fc6736a2a373f47dc6c14c70c319.tar.gz
redead-d62058fcdea5fc6736a2a373f47dc6c14c70c319.tar.bz2
redead-d62058fcdea5fc6736a2a373f47dc6c14c70c319.zip
Removed exessive whitespace so future commits will be cleaner
Diffstat (limited to 'entities/weapons/rad_inv/shared.lua')
-rw-r--r--entities/weapons/rad_inv/shared.lua410
1 files changed, 205 insertions, 205 deletions
diff --git a/entities/weapons/rad_inv/shared.lua b/entities/weapons/rad_inv/shared.lua
index 50e7691..15510d4 100644
--- a/entities/weapons/rad_inv/shared.lua
+++ b/entities/weapons/rad_inv/shared.lua
@@ -1,19 +1,19 @@
if SERVER then
AddCSLuaFile( "shared.lua" )
-
+
end
if CLIENT then
SWEP.ViewModelFOV = 70
SWEP.ViewModelFlip = false
-
+
SWEP.PrintName = "Quick Inventory"
SWEP.IconLetter = "H"
SWEP.Slot = 0
SWEP.Slotpos = 1
-
+
end
SWEP.HoldType = "normal"
@@ -39,13 +39,13 @@ SWEP.PanelSize = 80
function SWEP:Holster()
if SERVER then return true end
-
+
if self.Deployed then
-
+
self.Deployed = false
-
+
self.Weapon:RemovePanels()
-
+
end
return true
@@ -54,33 +54,33 @@ end
function SWEP:Deploy()
- if SERVER then
-
+ if SERVER then
+
self.Weapon:SetNWInt( "InvPos", 1 )
self.Weapon:SetNWBool( "Synch", false )
self.Weapon:SetNWBool( "UseMode", false )
-
+
self.Owner:SynchInventory()
-
- self.Owner:NoticeOnce( "Right click to scroll through your inventory", GAMEMODE.Colors.Blue, 5, 2 )
- self.Owner:NoticeOnce( "Left click to select an item and use it", GAMEMODE.Colors.Blue, 5, 4 )
-
- return true
-
+
+ self.Owner:NoticeOnce( "Right click to scroll through your inventory", GAMEMODE.Colors.Blue, 5, 2 )
+ self.Owner:NoticeOnce( "Left click to select an item and use it", GAMEMODE.Colors.Blue, 5, 4 )
+
+ return true
+
end
-
+
if not self.Deployed then
-
+
self.Deployed = true
self.LastInv = Inv_Size()
self.InvPos = 1
-
+
self.Weapon:GeneratePanels()
-
+
end
-
- return true
-
+
+ return true
+
end
function SWEP:GeneratePanels()
@@ -88,42 +88,42 @@ function SWEP:GeneratePanels()
self.InvPanels = {}
self.YPosTbl = {}
self.InvItems = Inv_UniqueItems()
-
+
if Inv_Size() == 0 then return end
-
+
for i=1, math.min( self.NumPanels, #self.InvItems ) do
-
+
local id = self.Weapon:GetNWInt( "InvPos", 1 ) + i - 1
-
+
if id > #self.InvItems then
-
+
id = math.Clamp( id - #self.InvItems, 1, #self.InvItems )
-
+
end
-
+
local panel = vgui.Create( "ItemPanel" )
panel:SetItemTable( item.GetByID( self.InvItems[id] ) )
-
+
if i == 1 then
-
+
panel:SetPos( -self.PanelSize, self.YPos )
panel:SetSize( self.PanelSize * 1.5, self.PanelSize * 1.5 )
panel:SetSizeOverride( self.PanelSize * 1.5 )
panel.YPos = self.YPos
-
+
else
-
+
panel:SetPos( -self.PanelSize, self.YPos + ( self.PanelSize * ( i - 1 ) ) + ( self.PanelSize * 1.5 ) + ( 5 * i ) )
panel:SetSize( self.PanelSize, self.PanelSize )
panel:SetSizeOverride( self.PanelSize )
panel.YPos = self.YPos + ( self.PanelSize * ( i - 2 ) ) + ( self.PanelSize * 1.5 ) + ( 5 * i )
-
+
end
-
+
self.YPosTbl[i] = panel.YPos
-
+
table.insert( self.InvPanels, panel )
-
+
end
end
@@ -132,35 +132,35 @@ function SWEP:AddPanel() // call after removing a panel
local id = self.Weapon:GetNWInt( "InvPos", 1 ) - 1
local inv = Inv_UniqueItems()
-
+
if id < 1 then
-
+
id = #inv
-
+
end
local i = #self.InvPanels
local tbl = item.GetByID( inv[id] )
-
+
local panel = vgui.Create( "ItemPanel" )
panel:SetItemTable( tbl )
panel:SetPos( -self.PanelSize, self.YPosTbl[ i + 1 ] )
panel:SetSize( self.PanelSize, self.PanelSize )
panel:SetSizeOverride( self.PanelSize )
panel.YPos = self.YPosTbl[ i + 1 ]
-
+
table.insert( self.InvPanels, panel )
-
+
end
function SWEP:RemovePanels()
for k,v in pairs( self.InvPanels ) do
-
+
v:Remove()
-
+
end
-
+
self.InvPanels = {}
self.InvItems = {}
self.YPosTbl = {}
@@ -170,7 +170,7 @@ end
function SWEP:RemovePanel()
if not self.InvPanels[1] then return end
-
+
self.InvPanels[1].Removal = true
end
@@ -178,9 +178,9 @@ end
function SWEP:RemoveAllPanels()
for k,v in pairs( self.InvPanels ) do
-
+
v.Removal = true
-
+
end
end
@@ -188,50 +188,50 @@ end
function SWEP:SecondaryAttack()
if CLIENT then return end
-
+
self.Weapon:SetNextSecondaryFire( CurTime() + 0.3 )
-
+
if self.Weapon:GetNWBool( "UseMode", false ) then
-
+
local inv = self.Owner:GetUniqueInventory()
local pos = self.Weapon:GetNWInt( "InvPos", 1 )
local tbl = item.GetByID( inv[pos] )
-
+
self.Weapon:SetNWInt( "FuncPos", self.Weapon:GetNWInt( "FuncPos", 1 ) + 1 )
-
+
if tbl.Weapon then
-
+
if self.Weapon:GetNWInt( "FuncPos", 1 ) > 2 then
-
+
self.Weapon:SetNWInt( "FuncPos", 1 )
-
+
end
-
+
return
-
+
end
-
+
if self.Weapon:GetNWInt( "FuncPos", 1 ) > ( #self.Functions + 2 ) then
-
+
self.Weapon:SetNWInt( "FuncPos", 1 )
-
+
end
-
+
else
-
+
local size = #self.Owner:GetUniqueInventory()
local pos = self.Weapon:GetNWInt( "InvPos", 1 ) + 1
-
+
if pos > size then
-
+
pos = 1
-
+
end
-
+
self.Weapon:SetNWInt( "InvPos", pos )
-
+
end
-
+
self.Owner:ClientSound( self.Scroll )
end
@@ -239,152 +239,152 @@ end
function SWEP:PrimaryAttack()
if CLIENT then return end
-
+
self.Weapon:SetNextPrimaryFire( CurTime() + 0.5 )
-
+
local inv = self.Owner:GetUniqueInventory()
- local pos = self.Weapon:GetNWInt( "InvPos", 1 )
+ local pos = self.Weapon:GetNWInt( "InvPos", 1 )
local tbl = item.GetByID( inv[pos] )
-
+
if not tbl then return end
-
+
if self.Weapon:GetNWBool( "UseMode", false ) then
local fpos = self.Weapon:GetNWInt( "FuncPos", 1 )
-
+
if tbl.Weapon then
-
+
if fpos == 1 then
-
+
self.Owner:ClientSound( self.Cancel )
-
+
else
-
+
self.Functions[1]( self.Owner, tbl.ID )
-
+
end
-
+
self.Weapon:SetNWBool( "UseMode", false )
self.Weapon:SetNWInt( "FuncPos", 1 )
self.Weapon:SetNWInt( "InvPos", 1 )
self.Weapon:Synch()
-
+
return
-
+
end
-
+
if fpos == 1 then
-
+
self.Owner:ClientSound( self.Cancel )
-
+
elseif fpos == 2 then
-
+
self.Weapon:DropItem( tbl.ID, 1 )
-
+
else
-
+
self.Functions[ fpos - 2 ]( self.Owner, tbl.ID )
-
+
end
-
+
self.Weapon:SetNWBool( "UseMode", false )
self.Weapon:SetNWInt( "FuncPos", 1 )
self.Weapon:SetNWInt( "InvPos", 1 )
self.Weapon:Synch()
-
+
else
-
+
self.Weapon:SetNWBool( "UseMode", !self.Weapon:SetNWBool( "UseMode", false ) )
-
+
self.Functions = tbl.Functions
-
+
self.Owner:ClientSound( self.Selection )
-
+
end
-
+
end
function SWEP:DropItem( id, count )
-
+
if not self.Owner:HasItem( id ) then return end
-
+
local tbl = item.GetByID( id )
-
+
if count == 1 then
-
+
if self.Owner:HasItem( id ) then
-
+
local makeprop = true
-
+
if tbl.DropFunction then
-
+
makeprop = tbl.DropFunction( self.Owner, id, true )
-
+
end
-
+
if makeprop then
-
+
local prop = ents.Create( "prop_physics" )
prop:SetPos( self.Owner:GetItemDropPos() )
prop:SetAngles( self.Owner:GetAimVector():Angle() )
- prop:SetModel( tbl.Model )
+ prop:SetModel( tbl.Model )
prop:SetCollisionGroup( COLLISION_GROUP_WEAPON )
prop:Spawn()
prop.IsItem = true
prop.Removal = CurTime() + 5 * 60
-
+
end
-
+
self.Owner:RemoveFromInventory( id, true )
self.Owner:EmitSound( Sound( "items/ammopickup.wav" ) )
-
+
end
-
+
return
-
+
end
-
+
local items = {}
-
+
for i=1, count do
-
+
if self.Owner:HasItem( id ) then
-
+
table.insert( items, id )
-
+
end
-
+
end
-
+
local loot = ents.Create( "sent_lootbag" )
-
+
for k,v in pairs( items ) do
-
+
loot:AddItem( v )
-
+
end
-
+
loot:SetAngles( self.Owner:GetAimVector():Angle() )
loot:SetPos( self.Owner:GetItemDropPos() )
loot:SetRemoval( 60 * 5 )
loot:Spawn()
-
+
self.Owner:EmitSound( Sound( "items/ammopickup.wav" ) )
self.Owner:RemoveMultipleFromInventory( items )
-
+
if tbl.DropFunction then
-
+
tbl.DropFunction( self.Owner, id )
-
+
end
end
function SWEP:Synch()
- umsg.Start( "InvSWEP", self.Owner )
+ umsg.Start( "InvSWEP", self.Owner )
umsg.End()
-
+
end
function RecvSynch()
@@ -394,68 +394,68 @@ function RecvSynch()
end
usermessage.Hook( "InvSWEP", RecvSynch )
-function SWEP:Think()
+function SWEP:Think()
if SERVER then return end
-
+
if not self.Deployed then return end
-
+
local removing = false
-
+
if InvSWEPSynch or self.LastInv != Inv_Size() then
-
+
removing = true
InvSWEPSynch = false
-
+
self.Weapon:RemoveAllPanels()
-
+
end
-
+
self.LastInv = Inv_Size()
-
+
if #self.InvPanels < 1 then
-
+
self.Weapon:GeneratePanels()
-
+
end
-
+
if removing then return end
-
+
if self.Shuffle and #self.InvPanels < 5 then
-
+
for k,v in pairs( self.InvPanels ) do
-
+
v.YPos = self.YPosTbl[k]
-
+
end
-
+
self.Weapon:AddPanel()
-
+
self.Shuffle = false
-
+
end
-
+
if self.InvPos != self.Weapon:GetNWInt( "InvPos", 1 ) then
-
+
self.InvPos = self.Weapon:GetNWInt( "InvPos", 1 )
-
+
self.Weapon:RemovePanel()
-
+
end
-
+
end
function SWEP:DrawOption( i, name )
surface.SetFont( "InventoryFont" )
-
+
local w,h = surface.GetTextSize( name )
local col = Color( 255, 255, 255 )
-
+
if i == self.Weapon:GetNWInt( "FuncPos", 1 ) then
-
+
col = Color( 50, 255, 50 )
-
+
end
draw.RoundedBox( 4, self.PanelSize * 1.5 + 20, 12 + ( i - 1 ) * 25, w + 8, h, Color( 0, 0, 0, 200 ) )
@@ -466,97 +466,97 @@ end
function SWEP:DrawHUD()
if self.Weapon:GetNWBool( "UseMode", false ) then
-
+
local inv = Inv_UniqueItems()
local tbl = item.GetByID( inv[ self.Weapon:GetNWInt( "InvPos", 1 ) ] )
-
+
if not tbl then return end
-
+
if tbl.Weapon then
-
+
self.Weapon:DrawOption( 1, "cancel" )
self.Weapon:DrawOption( 2, "drop" )
-
+
return
-
+
end
-
+
for i=1, #tbl.Functions + 2 do
-
+
if i == 1 then
-
+
self.Weapon:DrawOption( i, "cancel" )
-
+
elseif i == 2 then
-
+
self.Weapon:DrawOption( i, "drop" )
-
+
else
-
+
self.Weapon:DrawOption( i, string.lower( tbl.Functions[ i - 2 ]( 0, 0, true ) ) )
-
+
end
-
+
end
-
+
end
-
+
for k,v in pairs( self.InvPanels or {} ) do
-
+
v.LastX = math.Clamp( math.max( ( v.LastX or self.PanelSize + self.XPos ) - ( FrameTime() * 700 ), 1 ), 0, self.PanelSize + self.XPos )
v.LastY = math.Clamp( math.max( ( v.LastY or self.YPos ) - ( FrameTime() * 700 ), 1 ), 0, self.PanelSize + self.YPos )
-
+
if v.LastX != 0 or v.LastY != 0 then // automatically bring the panel into the screen
-
+
v:SetPos( self.XPos - v.LastX, v.YPos - v.LastY )
-
+
if v.YPos == self.YPosTbl[1] then
-
+
v:SetSize( self.PanelSize * 1.5, self.PanelSize * 1.5 )
v:SetSizeOverride( self.PanelSize * 1.5 )
-
+
end
-
+
end
-
+
if v.Removal then
-
+
v.RemoveX = math.Clamp( ( v.RemoveX or self.XPos ) - ( FrameTime() * 700 ), -1 * ( self.PanelSize * 2 ), self.PanelSize + self.XPos )
-
+
if v.RemoveX != -1 * ( self.PanelSize * 2 ) then
-
+
v:SetPos( v.RemoveX, v.YPos )
-
+
else
-
+
v:Remove()
-
+
table.remove( self.InvPanels, k )
-
+
local all = true
-
+
for c,d in pairs( self.InvPanels ) do
-
+
if not d.Removal then
-
+
all = false
-
+
end
-
+
end
-
+
if not all then
-
+
self.Shuffle = true
-
+
end
-
+
break
-
+
end
-
+
end
-
+
end
-
+
end