Advertisement
Guest User

Fridge

a guest
Jun 25th, 2014
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.28 KB | None | 0 0
  1. --init.lua
  2.  
  3. AddCSLuaFile("shared.lua")
  4. include("shared.lua")
  5. AddCSLuaFile( "cl_init.lua" )
  6. include("cl_init.lua")
  7.  
  8. function ENT:Initialize( )
  9.  
  10.     self:SetModel( "models/props_interiors/refrigerator01a.mdl" )
  11.     self:SetUseType( SIMPLE_USE )
  12.     self:PhysicsInit( SOLID_VPHYSICS )
  13.     self:SetMoveType( MOVETYPE_VPHYSICS )  
  14.     self:SetSolid( SOLID_VPHYSICS )      
  15. end
  16.  
  17. function ENT:Use(activator,caller)
  18. if IsValid( activator ) && activator:IsPlayer()  then
  19. umsg.Start( "OpenTheFridge", activator )
  20. umsg.End()
  21. end
  22. end
  23.  
  24. concommand.Add( "CreateFood", function(ply, command, args)
  25. local ply = Entity(1)
  26. local tr = ply:GetEyeTrace()
  27.  
  28. for k,v in pairs(InFridge) do
  29. for i = 1, #InFridge do
  30. print("Forst "..v.Amount)
  31.     if InFridge[i].FridgeName == (tostring(args[3])) then
  32.         InFridge[i].Amount = v.Amount - 1
  33.         print("Sen "..v.Amount)
  34.     end
  35. end
  36. end
  37.  
  38. local FridgeEnt = ents.Create("prop_physics")
  39. FridgeEnt:SetModel(tostring(args[1]))
  40. FridgeEnt:SetPos(ply:GetPos()+ Vector(0,-10,20) )
  41. FridgeEnt:Spawn()
  42.  
  43. end)
  44.  
  45.  
  46.  
  47. function ENT:Think()
  48.  
  49. for k,v in pairs(InFridge) do
  50. if v.Amount <= 0 then
  51. v.Amount = 0
  52.  
  53.         end
  54.     end
  55. end
  56.  
  57. function ENT:Touch(hitEnt)
  58.  
  59. for k,v in pairs(InFridge) do
  60. if (hitEnt:GetClass() == "prop_physics") then
  61.  
  62. for i = 1, #InFridge do
  63.     if InFridge[i].FridgeModel == hitEnt:GetModel() then
  64.         InFridge[i].Amount = v.Amount + 0.5
  65.         self:EmitSound("/buttons/button19.wav", 100, 100)
  66.         hitEnt:Remove()
  67.         print(v.FridgeName..": "..v.Amount.."\n")
  68.     end
  69. end
  70.  
  71.         end
  72.     end
  73. end
  74.  
  75.  
  76.  
  77.  
  78. --shared
  79.  
  80. ENT.Type = "anim"
  81. ENT.Base = "base_gmodentity"
  82. ENT.PrintName = "Fridge"
  83. ENT.Author = "Zombie Slayer"
  84. ENT.Spawnable = true
  85. ENT.AdminSpawnable = true
  86.  
  87. function ENT:SetAutomaticFrameAdvance( bUsingAnim )
  88.     self.AutomaticFrameAdvance = bUsingAnim
  89. end
  90.  
  91. InFridge = {}
  92. InFridge[1] = {FridgeName = "Fish", FridgeModel = "models/props/CS_militia/fishriver01.mdl", Amount = 1}
  93. InFridge[2] = {FridgeName = "Blue Soda", FridgeModel = "models/props_junk/PopCan01a.mdl", Amount = 1}
  94. InFridge[3] = {FridgeName = "Milk", FridgeModel = "models/props_junk/garbage_milkcarton002a.mdl", Amount = 1}
  95. InFridge[4] = {FridgeName = "Water Melon", FridgeModel = "models/props_junk/watermelon01.mdl", Amount = 0}
  96. InFridge[5] = {FridgeName = "Water Bottle", FridgeModel = "models/props/cs_office/Water_bottle.mdl", Amount = 1}
  97. InFridge[6] = {FridgeName = "Beer", FridgeModel = "models/props_junk/garbage_glassbottle003a.mdl", Amount = 1}
  98. InFridge[7] = {FridgeName = "Chinese Takeaway", FridgeModel = "models/props_junk/garbage_takeoutcarton001a.mdl", Amount = 1}
  99. InFridge[8] = {FridgeName = "Banana", FridgeModel = "models/weapons/w_banana.mdl", Amount = 0}
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107. --cl_init.lua
  108.  
  109. include("shared.lua")
  110. AddCSLuaFile( "init.lua" )
  111.  
  112.  
  113. function FridgeMenu()
  114.  
  115. local FridgeFrame = vgui.Create( "DFrame" )
  116. FridgeFrame:Center()
  117. FridgeFrame:SetSize( 300, 500 )
  118. FridgeFrame:SetTitle( "Fridge" )
  119. FridgeFrame:SetVisible( true )
  120. FridgeFrame:SetDraggable( true )
  121. FridgeFrame:ShowCloseButton( true )
  122. FridgeFrame:MakePopup()
  123. FridgeFrame.Paint = function()
  124. draw.RoundedBox( 0,0,0, FridgeFrame:GetWide(), FridgeFrame:GetTall(), Color( 100, 0, 0, 255))
  125. draw.RoundedBox( 0,0,0, FridgeFrame:GetWide(), 20, Color( 200, 0, 0, 255))
  126. draw.RoundedBox( 0,0,0, 10, FridgeFrame:GetTall(), Color( 200, 0, 0, 255))
  127. draw.RoundedBox( 0,FridgeFrame:GetWide()-10,10, FridgeFrame:GetTall(), FridgeFrame:GetTall(), Color( 200, 0, 0, 255))
  128. draw.RoundedBox( 0,10,FridgeFrame:GetTall()-10, FridgeFrame:GetWide(), 10, Color( 200, 0, 0, 255))
  129.  end
  130.  
  131. local IconList = vgui.Create( "DPanelList", FridgeFrame )
  132. IconList:EnableVerticalScrollbar( true )
  133. IconList:EnableHorizontal( true )
  134. IconList:SetPos(10,30)
  135. IconList:SetSize(290, 450)
  136. IconList:SetPadding( 4 )
  137.  
  138.  
  139. for k,v in pairs(InFridge) do
  140.  
  141. for i = 1, v.Amount do
  142.  
  143. local InFridgeIcon = vgui.Create("SpawnIcon", IconList)
  144. InFridgeIcon:SetModel(v.FridgeModel)
  145. InFridgeIcon:SetToolTip(Format("%s", v.FridgeName))
  146.  
  147. if v.Amount == 0 then
  148.     InFridgeIcon:Remove(true)
  149. else
  150.     IconList:AddItem(InFridgeIcon)
  151.  
  152. end
  153.  
  154. InFridgeIcon.DoClick = function(InFridgeIcon)
  155. InFridgeIcon:Remove()
  156.  
  157. surface.PlaySound( "ui/buttonclickrelease.wav" )
  158. RunConsoleCommand("CreateFood", v.FridgeModel, v.Amount, v.FridgeName)
  159.  
  160.             end
  161.         end
  162.     end
  163. end
  164. usermessage.Hook("OpenTheFridge", FridgeMenu)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement