summaryrefslogtreecommitdiff
path: root/gamemode/itemsystem
diff options
context:
space:
mode:
authorScott <scotth0828@gmail.com>2016-04-30 20:34:42 -0400
committerScott <scotth0828@gmail.com>2016-04-30 20:34:42 -0400
commitbdf6cacc1fe7af364b93604253f3229d842d6170 (patch)
tree21015081b4d66d45390ba625c09fb84d143f63db /gamemode/itemsystem
parente8fc8b5bf824ed3283dede946e66f5fd843d54ff (diff)
parentc6b56a911622f9a52fd92293074192d1f13d3e96 (diff)
downloadgmstranded-bdf6cacc1fe7af364b93604253f3229d842d6170.tar.gz
gmstranded-bdf6cacc1fe7af364b93604253f3229d842d6170.tar.bz2
gmstranded-bdf6cacc1fe7af364b93604253f3229d842d6170.zip
Merge branch 'master' of ssh://cogarr.net:43/home/git/gmsurvival
Diffstat (limited to 'gamemode/itemsystem')
-rw-r--r--gamemode/itemsystem/common.lua81
-rw-r--r--gamemode/itemsystem/common_dropable.lua73
-rw-r--r--gamemode/itemsystem/common_plantable.lua1
-rw-r--r--gamemode/itemsystem/items/admantineore.lua10
-rw-r--r--gamemode/itemsystem/items/anexample.lua18
-rw-r--r--gamemode/itemsystem/items/baits.lua20
-rw-r--r--gamemode/itemsystem/items/bananaseeds.lua28
-rw-r--r--gamemode/itemsystem/items/berry.lua51
-rw-r--r--gamemode/itemsystem/items/copperore.lua10
-rw-r--r--gamemode/itemsystem/items/goldore.lua10
-rw-r--r--gamemode/itemsystem/items/grainseeds.lua21
-rw-r--r--gamemode/itemsystem/items/herbs.lua20
-rw-r--r--gamemode/itemsystem/items/ironore.lua10
-rw-r--r--gamemode/itemsystem/items/melonseeds.lua26
-rw-r--r--gamemode/itemsystem/items/mithirilore.lua10
-rw-r--r--gamemode/itemsystem/items/orangeseeds.lua32
-rw-r--r--gamemode/itemsystem/items/platinumore.lua10
-rw-r--r--gamemode/itemsystem/items/silverore.lua10
-rw-r--r--gamemode/itemsystem/items/sprout.lua1
-rw-r--r--gamemode/itemsystem/items/steelore.lua10
-rw-r--r--gamemode/itemsystem/items/stone.lua10
-rw-r--r--gamemode/itemsystem/items/strangestone.lua10
-rw-r--r--gamemode/itemsystem/items/techore.lua10
-rw-r--r--gamemode/itemsystem/items/waterbottle.lua37
24 files changed, 379 insertions, 140 deletions
diff --git a/gamemode/itemsystem/common.lua b/gamemode/itemsystem/common.lua
index f7d6c72..b002a43 100644
--- a/gamemode/itemsystem/common.lua
+++ b/gamemode/itemsystem/common.lua
@@ -18,29 +18,80 @@ function startProcessGeneric(player, string, time, ondone)
end
if(SERVER) then
- util.AddNetworkString( "gms_dropresources" )
+ util.AddNetworkString( "gms_plantseed" )
end
-function genericDropResource(player, resource, ammount)
+local function plant(player, resourcename)
if(CLIENT) then
- net.Start("gms_dropresources")
- net.WriteString(resource)
- net.WriteInt(ammount,GMS.NETINT_BITCOUNT)
+ net.Start("gms_plantseed")
+ net.WriteString(resourcename)
net.SendToServer()
end
if(SERVER) then
- if(player.Resources[resource] <= ammount) then
- player:SendMessage("You don't have that many to drop!", 3, Color(255, 255, 255, 255))
+ print("Planting " .. resourcename)
+ local tbl = GMS.Resources[resourcename]
+ print("Plant table:")
+ PrintTable(tbl)
+ if(tbl.GrowTime == nil) then
+ print(tbl.Name .. " .GrowTime is nil, this might be a bug!")
return
end
- local res = ply:GetResource( Type )
-
- if ( ammount > res ) then
- ammount = res
+ if(tbl.OnGrow == nil) then
+ print(tbl.Name .. " .OnGrow is nil, this might be a bug!")
+ return
end
- ply:DropResource( Type, int )
- ply:DecResource( Type, int )
+
+ local tr = player:GetEyeTrace()
+ local pent = ents.Create("gms_generic_plantable")
+ pent:SetPos(tr.HitPos)
+ pent.GrowTime = tbl.GrowTime
+ pent.OnGrow = tbl.OnGrow
+ print("Setting seed's owner to:")
+ print(player)
+ pent:SetOwner(player)
+ pent:Spawn()
end
end
-net.Receive( "gms_dropresources", function(len,pl)
- genericDropResource(pl,net.ReadString(),net.ReadInt(GMS.NETINT_BITCOUNT))
+net.Receive( "gms_plantseed", function(len,pl)
+ local resourcename = net.ReadString()
+ plant(pl,resourcename)
end)
+
+function genericMakePlantable( tbl )
+ local plant = function(player)
+ plant(player,tbl.Name)
+ end
+ if(tbl.Actions == nil) then
+ tbl.Actions = {}
+ end
+ tbl.Actions["Plant " .. tbl.Name] = plant
+end
+
+GAMEMODE = GAMEMODE or {}
+function GAMEMODE.MakeGenericPlantChild( ply, pos, mdl, parent )
+ local ent = ents.Create( "prop_physics" )
+ ent:SetAngles( Angle( 0, math.random( 0, 360 ) , 0 ) )
+ ent:SetModel( mdl )
+ ent:SetPos( pos )
+ ent:Spawn()
+ ent.IsPlantChild = true
+
+ ent:SetHealth( 99999 )
+ ent:Fadein()
+
+ local phys = ent:GetPhysicsObject()
+ if ( phys ) then phys:EnableMotion( false ) end
+
+ ent.PlantParent = parent
+ ent.PlantParentName = parent:GetName()
+ parent.Children = parent.Children + 1
+
+ if ( IsValid( ply ) ) then
+ SPropProtection.PlayerMakePropOwner( ply, ent )
+ else
+ ent:SetNWString( "Owner", "World" )
+ end
+
+ ent.PhysgunDisabled = true
+
+ return ent
+end
diff --git a/gamemode/itemsystem/common_dropable.lua b/gamemode/itemsystem/common_dropable.lua
new file mode 100644
index 0000000..94513d3
--- /dev/null
+++ b/gamemode/itemsystem/common_dropable.lua
@@ -0,0 +1,73 @@
+function genericMakeDroppable(tbl)
+ if(SERVER) then return end
+ local drop1 = function(player)
+ genericDropResource(player,tbl.Name,1)
+ end
+ local dropall = function(player)
+ PrintTable(Resources)
+ print("Ammount:" .. Resources[tbl.Name])
+ genericDropResource(player,tbl.Name,Resources[tbl.Name])
+ end
+ local drophalf = function(player)
+ genericDropResource(player,tbl.Name,math.ceil(Resources[tbl.Name]/2.0))
+ end
+ local dropx = function(player)
+ if(SERVER) then return end
+ local frame = vgui.Create( "DFrame" )
+ frame:SetSize( 400, 60 )
+ frame:Center()
+ frame:MakePopup()
+
+ local TextEntry = vgui.Create( "DTextEntry", frame ) -- create the form as a child of frame
+ TextEntry:SetPos( 20, 30 )
+ TextEntry:SetSize( 360, 20 )
+ TextEntry:SetText( "Number to drop:" )
+ TextEntry.OnEnter = function( self )
+ if(tonumber(self:GetValue(),10) == nil) then return end
+ genericDropResource(player,tbl.Name,self:GetValue())
+ frame:Close()
+ end
+
+ end
+ if(tbl.Actions == nil) then
+ tbl.Actions = {}
+ end
+ if(tbl.Actions["Drop"] == nil) then
+ tbl.Actions["Drop"] = {}
+ end
+ tbl.Actions["Drop"]["Drop 1"] = drop1
+ tbl.Actions["Drop"]["Drop Half"] = drophalf
+ tbl.Actions["Drop"]["Drop all"] = dropall
+ tbl.Actions["Drop"]["Drop X"] = dropx
+end
+
+
+if(SERVER) then
+ util.AddNetworkString( "gms_dropresources" )
+end
+function genericDropResource(player, resource, ammount)
+ if(CLIENT) then
+ net.Start("gms_dropresources")
+ net.WriteString(resource)
+ net.WriteInt(ammount,GMS.NETINT_BITCOUNT)
+ net.SendToServer()
+ end
+ if(SERVER) then
+ if(player.Resources[resource] < ammount) then
+ player:SendMessage("You don't have that many to drop!", 3, Color(255, 255, 255, 255))
+ return
+ end
+ local res = player.Resources[resource]
+
+ if ( ammount > res ) then
+ ammount = res
+ end
+ player:DropResource( resource, ammount )
+ player:DecResource( resource, ammount )
+ end
+end
+net.Receive( "gms_dropresources", function(len,pl)
+ local resourcename = net.ReadString()
+ local resourcenum = net.ReadInt(GMS.NETINT_BITCOUNT)
+ genericDropResource(pl,resourcename,resourcenum)
+end)
diff --git a/gamemode/itemsystem/common_plantable.lua b/gamemode/itemsystem/common_plantable.lua
new file mode 100644
index 0000000..383d8d2
--- /dev/null
+++ b/gamemode/itemsystem/common_plantable.lua
@@ -0,0 +1 @@
+print("Hello from common_plantable.lua!")
diff --git a/gamemode/itemsystem/items/admantineore.lua b/gamemode/itemsystem/items/admantineore.lua
new file mode 100644
index 0000000..2b1ac16
--- /dev/null
+++ b/gamemode/itemsystem/items/admantineore.lua
@@ -0,0 +1,10 @@
+ITEM = {}
+
+ITEM.Name = "Adamantine Ore"
+ITEM.Description = "Something you can craft with!"
+ITEM.Icon = "test.png"
+ITEM.UniqueData = false
+
+genericMakeDroppable(ITEM)
+
+GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/anexample.lua b/gamemode/itemsystem/items/anexample.lua
index 19cdbd7..100096f 100644
--- a/gamemode/itemsystem/items/anexample.lua
+++ b/gamemode/itemsystem/items/anexample.lua
@@ -14,5 +14,23 @@ ITEM.Icon = "test.png"
--If this item has "unique data", for example batteries that run out of charge
ITEM.UniqueData = false
+--A table of strings to functions that show up when the player clicks the item in their inventory.
+--The you may also use strings to tables of strings to functions (and so on) to make drop-down menus.
+--Example:
+--[[
+ITEM.Actions = {
+ "Click me!" = functions(player) print("I was clicked!") end
+ "Or me!" = functions(player) print("I was clicked by " .. player:Name()) end
+ "Drop down" = {
+ "This is an item in a drop down" = function(player) print("Drop1") end
+ "Drop downs can have more drop downs!" = {
+ "Drop2" = function(player) print("Drop2") end
+ "Drop3" = function(player) print("Drop3") end
+ }
+ }
+}
+--]]
+ITEM.Actions = {}
+
--Be sure to register when everything is said and done!
GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/baits.lua b/gamemode/itemsystem/items/baits.lua
index 47bf1d0..47a6fbb 100644
--- a/gamemode/itemsystem/items/baits.lua
+++ b/gamemode/itemsystem/items/baits.lua
@@ -1,26 +1,10 @@
ITEM = {}
ITEM.Name = "Baits"
-ITEM.Description = "Something you can plant!"
+ITEM.Description = "Something you can use to fish with! (Consumed automatically)"
ITEM.Icon = "test.png"
ITEM.UniqueData = false
-local drop1 = function(player)
- print("Drop 1 called")
-end
-
-local dropall = function(player)
- print("Drop all called")
-end
-
-local dropx = function(player)
- print("Drop x called")
-end
-
-ITEM.Actions = {}
-ITEM.Actions["Drop"] = {}
-ITEM.Actions["Drop"]["Drop 1"] = drop1
-ITEM.Actions["Drop"]["Drop all"] = dropall
-ITEM.Actions["Drop"]["Drop X"] = dropx
+genericMakeDroppable(ITEM)
GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/bananaseeds.lua b/gamemode/itemsystem/items/bananaseeds.lua
index 358ed63..4a9d0c0 100644
--- a/gamemode/itemsystem/items/bananaseeds.lua
+++ b/gamemode/itemsystem/items/bananaseeds.lua
@@ -5,22 +5,22 @@ ITEM.Description = "Something you can plant!"
ITEM.Icon = "test.png"
ITEM.UniqueData = false
-local drop1 = function(player)
- print("Drop 1 called")
-end
-local dropall = function(player)
- print("Drop all called")
-end
+--Things needed to make something plantable
+ITEM.GrowTime = 1
+ITEM.OnGrow = function(self, aor, owner)
+ local plant = GAMEMODE.MakeGenericPlant( owner, self:GetPos() + Vector( 0, 0, -3 ), "models/props/de_dust/du_palm_tree01_skybx.mdl" )
+ plant.Children = 0
-local dropx = function(player)
- print("Drop x called")
-end
+ local num = 1
+ if ( IsValid( ply ) && ply:HasUnlock( "Adept_Farmer" ) ) then num = num + math.random( 0, 1 ) end
+ if ( IsValid( ply ) && ply:HasUnlock( "Expert_Farmer" ) ) then num = num + math.random( 0, 2 ) end
-ITEM.Actions = {}
-ITEM.Actions["Drop"] = {}
-ITEM.Actions["Drop"]["Drop 1"] = drop1
-ITEM.Actions["Drop"]["Drop all"] = dropall
-ITEM.Actions["Drop"]["Drop X"] = dropx
+ for i = 1, num do
+ GAMEMODE.MakeGenericPlantChild( owner, self:GetPos() + Vector( math.random( -7, 7 ), math.random( -7, 7 ), math.random( 48, 55 ) ), "models/props/cs_italy/bananna_bunch.mdl", plant )
+ end
+end
+genericMakePlantable(ITEM)
+genericMakeDroppable(ITEM)
GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/berry.lua b/gamemode/itemsystem/items/berry.lua
index 2021ffd..77a3a35 100644
--- a/gamemode/itemsystem/items/berry.lua
+++ b/gamemode/itemsystem/items/berry.lua
@@ -9,45 +9,30 @@ if(SERVER) then
util.AddNetworkString( "gms_eatberry" )
end
-local eat = function(ln, player)
- if(CLIENT) then
- net.Start("gms_eatberry")
- net.SendToServer()
- end
- if(SERVER) then
- if(player.Resources[ITEM.Name] <= 0) then
- player:SendMessage( "You don't have enough to do that!", 3, Color( 10, 200, 10, 255 ) )
- return
- end
- startProcessGeneric(player,"Eating some berries",3,function()
- player:DecResource( "Berries", 1 )
- player:SendMessage( "You're a little less hungry and thirsty now.", 3, Color( 10, 200, 10, 255 ) )
- --Set hunger and thirst
- player:SetFood(math.Clamp(player.Hunger+100,0,1000))
- player:SetThirst(math.Clamp(player.Thirst+100,0,1000))
- end)
- end
-end
-net.Receive( "gms_eatberry", eat)
-
-local drop1 = function(player)
- genericDropResource(player,ITEM.Name,1)
+local eat_client = function(ln, player)
+ net.Start("gms_eatberry")
+ net.SendToServer()
end
-local dropall = function(player)
- genericDropResource(player,ITEM.Name,9999)
+local finishedeating = function()
+ player:DecResource( "Berries", 1 )
+ player:SendMessage( "You're a little less hungry and thirsty now.", 3, Color( 10, 200, 10, 255 ) )
+ --Set hunger and thirst
+ player:SetFood(math.Clamp(player.Hunger+100,0,1000))
+ player:SetThirst(math.Clamp(player.Thirst+100,0,1000))
end
-local dropx = function(player)
- print("Drop x called")
+local eat = function(ln, player)
+ if(player.Resources["Berries"] <= 0) then
+ player:SendMessage( "You don't have enough to do that!", 3, Color( 10, 200, 10, 255 ) )
+ return
+ end
+ startProcessGeneric(player,"Eating some berries",3,finishedeating)
end
+net.Receive( "gms_eatberry", eat)
ITEM.Actions = {}
-ITEM.Actions["EatBerry"] = eat
-
-ITEM.Actions["Drop"] = {}
-ITEM.Actions["Drop"]["Drop 1"] = drop1
-ITEM.Actions["Drop"]["Drop all"] = dropall
-ITEM.Actions["Drop"]["Drop X"] = dropx
+genericMakeDroppable(ITEM)
+ITEM.Actions["Eat Berry"] = eat_client
GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/copperore.lua b/gamemode/itemsystem/items/copperore.lua
new file mode 100644
index 0000000..c7e1fea
--- /dev/null
+++ b/gamemode/itemsystem/items/copperore.lua
@@ -0,0 +1,10 @@
+ITEM = {}
+
+ITEM.Name = "Copper Ore"
+ITEM.Description = "Something you can craft with!"
+ITEM.Icon = "test.png"
+ITEM.UniqueData = false
+
+genericMakeDroppable(ITEM)
+
+GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/goldore.lua b/gamemode/itemsystem/items/goldore.lua
new file mode 100644
index 0000000..a5b1a53
--- /dev/null
+++ b/gamemode/itemsystem/items/goldore.lua
@@ -0,0 +1,10 @@
+ITEM = {}
+
+ITEM.Name = "Gold Ore"
+ITEM.Description = "Something you can craft with!"
+ITEM.Icon = "test.png"
+ITEM.UniqueData = false
+
+genericMakeDroppable(ITEM)
+
+GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/grainseeds.lua b/gamemode/itemsystem/items/grainseeds.lua
index 9b22a0b..5b7ba3c 100644
--- a/gamemode/itemsystem/items/grainseeds.lua
+++ b/gamemode/itemsystem/items/grainseeds.lua
@@ -5,22 +5,13 @@ ITEM.Description = "Something you can plant, or mash up into flour"
ITEM.Icon = "test.png"
ITEM.UniqueData = false
-local drop1 = function(player)
- print("Drop 1 called")
-end
-
-local dropall = function(player)
- print("Drop all called")
-end
-local dropx = function(player)
- print("Drop x called")
+--Things needed to make something plantable
+ITEM.GrowTime = 1
+ITEM.OnGrow = function(self, aor, owner)
+ GAMEMODE.MakeGenericPlant( owner, self:GetPos() + Vector( math.random( -10, 10 ), math.random( -10, 10 ), 0 ), "models/props_foliage/cattails.mdl" )
end
-
-ITEM.Actions = {}
-ITEM.Actions["Drop"] = {}
-ITEM.Actions["Drop"]["Drop 1"] = drop1
-ITEM.Actions["Drop"]["Drop all"] = dropall
-ITEM.Actions["Drop"]["Drop X"] = dropx
+genericMakePlantable(ITEM)
+genericMakeDroppable(ITEM)
GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/herbs.lua b/gamemode/itemsystem/items/herbs.lua
index 9db5417..f0b9dc8 100644
--- a/gamemode/itemsystem/items/herbs.lua
+++ b/gamemode/itemsystem/items/herbs.lua
@@ -1,26 +1,10 @@
ITEM = {}
ITEM.Name = "Herbs"
-ITEM.Description = "Something you can plant!"
+ITEM.Description = "Blech, vegtables..."
ITEM.Icon = "test.png"
ITEM.UniqueData = false
-local drop1 = function(player)
- print("Drop 1 called")
-end
-
-local dropall = function(player)
- print("Drop all called")
-end
-
-local dropx = function(player)
- print("Drop x called")
-end
-
-ITEM.Actions = {}
-ITEM.Actions["Drop"] = {}
-ITEM.Actions["Drop"]["Drop 1"] = drop1
-ITEM.Actions["Drop"]["Drop all"] = dropall
-ITEM.Actions["Drop"]["Drop X"] = dropx
+genericMakeDroppable(ITEM)
GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/ironore.lua b/gamemode/itemsystem/items/ironore.lua
new file mode 100644
index 0000000..b94d9eb
--- /dev/null
+++ b/gamemode/itemsystem/items/ironore.lua
@@ -0,0 +1,10 @@
+ITEM = {}
+
+ITEM.Name = "Iron Ore"
+ITEM.Description = "Something you can craft with!"
+ITEM.Icon = "test.png"
+ITEM.UniqueData = false
+
+genericMakeDroppable(ITEM)
+
+GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/melonseeds.lua b/gamemode/itemsystem/items/melonseeds.lua
index 874ac46..8d82f7a 100644
--- a/gamemode/itemsystem/items/melonseeds.lua
+++ b/gamemode/itemsystem/items/melonseeds.lua
@@ -5,22 +5,20 @@ ITEM.Description = "Something you can plant!"
ITEM.Icon = "test.png"
ITEM.UniqueData = false
-local drop1 = function(player)
- print("Drop 1 called")
-end
+ITEM.GrowTime = 1
+ITEM.OnGrow = function(self, aor, owner)
+ local plant = GAMEMODE.MakeGenericPlant( owner, self:GetPos() + Vector( 0, 0, 13 ), "models/props/CS_militia/fern01.mdl" )
+ plant.Children = 0
-local dropall = function(player)
- print("Drop all called")
-end
+ local num = 1
+ if ( IsValid( ply ) && ply:HasUnlock( "Adept_Farmer" ) ) then num = num + math.random( 0, 1 ) end
+ if ( IsValid( ply ) && ply:HasUnlock( "Expert_Farmer" ) ) then num = num + math.random( 0, 2 ) end
-local dropx = function(player)
- print("Drop x called")
+ for i = 1, num do
+ GAMEMODE.MakeGenericPlantChild( owner, self:GetPos() + Vector( math.random( -25, 25 ), math.random( -25, 25 ), math.random( 5, 7 ) ), "models/props_junk/watermelon01.mdl", plant )
+ end
end
-
-ITEM.Actions = {}
-ITEM.Actions["Drop"] = {}
-ITEM.Actions["Drop"]["Drop 1"] = drop1
-ITEM.Actions["Drop"]["Drop all"] = dropall
-ITEM.Actions["Drop"]["Drop X"] = dropx
+genericMakeDroppable(ITEM)
+genericMakePlantable(ITEM)
GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/mithirilore.lua b/gamemode/itemsystem/items/mithirilore.lua
new file mode 100644
index 0000000..da3dea8
--- /dev/null
+++ b/gamemode/itemsystem/items/mithirilore.lua
@@ -0,0 +1,10 @@
+ITEM = {}
+
+ITEM.Name = "Mithril Ore"
+ITEM.Description = "Something you can craft with!"
+ITEM.Icon = "test.png"
+ITEM.UniqueData = false
+
+genericMakeDroppable(ITEM)
+
+GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/orangeseeds.lua b/gamemode/itemsystem/items/orangeseeds.lua
index 33fd698..c9c3963 100644
--- a/gamemode/itemsystem/items/orangeseeds.lua
+++ b/gamemode/itemsystem/items/orangeseeds.lua
@@ -5,22 +5,28 @@ ITEM.Description = "Something you can plant!"
ITEM.Icon = "test.png"
ITEM.UniqueData = false
-local drop1 = function(player)
- print("Drop 1 called")
-end
+--Things needed to make something plantable
+ITEM.GrowTime = 1
+ITEM.OnGrow = function(self, aor, owner)
+ print("Owner:")
+ print(owner)
+ local plant = GAMEMODE.MakeGenericPlant( owner, self:GetPos() + Vector( 0, 0, -12 ), "models/props/cs_office/plant01_p1.mdl" )
+ plant.Children = 0
-local dropall = function(player)
- print("Drop all called")
-end
+ plant:SetCollisionGroup( 0 )
+ plant:SetSolid( SOLID_NONE )
+ plant.Children = 0
+
+ local num = 1
+ if ( IsValid( owner ) && owner:HasUnlock( "Adept_Farmer" ) ) then num = num + math.random( 0, 1 ) end
+ if ( IsValid( owner ) && owner:HasUnlock( "Expert_Farmer" ) ) then num = num + math.random( 0, 2 ) end
-local dropx = function(player)
- print("Drop x called")
+ for i = 1, num do
+ GAMEMODE.MakeGenericPlantChild( owner, self:GetPos() + Vector( math.random( -5, 5 ), math.random( -5, 5 ), math.random( 13, 30 ) ), "models/props/cs_italy/orange.mdl", plant )
+ end
end
-ITEM.Actions = {}
-ITEM.Actions["Drop"] = {}
-ITEM.Actions["Drop"]["Drop 1"] = drop1
-ITEM.Actions["Drop"]["Drop all"] = dropall
-ITEM.Actions["Drop"]["Drop X"] = dropx
+genericMakePlantable(ITEM)
+genericMakeDroppable(ITEM)
GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/platinumore.lua b/gamemode/itemsystem/items/platinumore.lua
new file mode 100644
index 0000000..14b3f62
--- /dev/null
+++ b/gamemode/itemsystem/items/platinumore.lua
@@ -0,0 +1,10 @@
+ITEM = {}
+
+ITEM.Name = "Platinum Ore"
+ITEM.Description = "Something you can craft with!"
+ITEM.Icon = "test.png"
+ITEM.UniqueData = false
+
+genericMakeDroppable(ITEM)
+
+GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/silverore.lua b/gamemode/itemsystem/items/silverore.lua
new file mode 100644
index 0000000..f0b0505
--- /dev/null
+++ b/gamemode/itemsystem/items/silverore.lua
@@ -0,0 +1,10 @@
+ITEM = {}
+
+ITEM.Name = "Silver Ore"
+ITEM.Description = "Something you can craft with!"
+ITEM.Icon = "test.png"
+ITEM.UniqueData = false
+
+genericMakeDroppable(ITEM)
+
+GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/sprout.lua b/gamemode/itemsystem/items/sprout.lua
new file mode 100644
index 0000000..218ff2c
--- /dev/null
+++ b/gamemode/itemsystem/items/sprout.lua
@@ -0,0 +1 @@
+print("Hello from sprout.lua!")
diff --git a/gamemode/itemsystem/items/steelore.lua b/gamemode/itemsystem/items/steelore.lua
new file mode 100644
index 0000000..c245ade
--- /dev/null
+++ b/gamemode/itemsystem/items/steelore.lua
@@ -0,0 +1,10 @@
+ITEM = {}
+
+ITEM.Name = "Steel Ore"
+ITEM.Description = "Something you can craft with!"
+ITEM.Icon = "test.png"
+ITEM.UniqueData = false
+
+genericMakeDroppable(ITEM)
+
+GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/stone.lua b/gamemode/itemsystem/items/stone.lua
new file mode 100644
index 0000000..d288d27
--- /dev/null
+++ b/gamemode/itemsystem/items/stone.lua
@@ -0,0 +1,10 @@
+ITEM = {}
+
+ITEM.Name = "Stone"
+ITEM.Description = "Something you can craft with!"
+ITEM.Icon = "test.png"
+ITEM.UniqueData = false
+
+genericMakeDroppable(ITEM)
+
+GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/strangestone.lua b/gamemode/itemsystem/items/strangestone.lua
new file mode 100644
index 0000000..9d684ce
--- /dev/null
+++ b/gamemode/itemsystem/items/strangestone.lua
@@ -0,0 +1,10 @@
+ITEM = {}
+
+ITEM.Name = "Strange Stone"
+ITEM.Description = "Something you can craft with!"
+ITEM.Icon = "test.png"
+ITEM.UniqueData = false
+
+genericMakeDroppable(ITEM)
+
+GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/techore.lua b/gamemode/itemsystem/items/techore.lua
new file mode 100644
index 0000000..cc494e6
--- /dev/null
+++ b/gamemode/itemsystem/items/techore.lua
@@ -0,0 +1,10 @@
+ITEM = {}
+
+ITEM.Name = "Tech Ore"
+ITEM.Description = "Something you can craft with!"
+ITEM.Icon = "test.png"
+ITEM.UniqueData = false
+
+genericMakeDroppable(ITEM)
+
+GMS.RegisterResource(ITEM)
diff --git a/gamemode/itemsystem/items/waterbottle.lua b/gamemode/itemsystem/items/waterbottle.lua
new file mode 100644
index 0000000..df43749
--- /dev/null
+++ b/gamemode/itemsystem/items/waterbottle.lua
@@ -0,0 +1,37 @@
+ITEM = {}
+
+ITEM.Name = "Water Bottle"
+ITEM.Description = "A delicious edible!"
+ITEM.Icon = "test.png"
+ITEM.UniqueData = false
+
+if(SERVER) then
+ util.AddNetworkString( "gms_drinkwaterbottle" )
+end
+
+local eat_client = function(ln, player)
+ net.Start("gms_drinkwaterbottle")
+ net.SendToServer()
+end
+
+local finisheddrink = function()
+ player:DecResource( "Water Bottle", 1 )
+ player:SendMessage( "You're a little less hungry and thirsty now.", 3, Color( 10, 200, 10, 255 ) )
+ --Set thirst
+ player:SetThirst(math.Clamp(player.Thirst+100,0,1000))
+end
+
+local drink = function(ln, player)
+ if(player.Resources["Water Bottle"] <= 0) then
+ player:SendMessage( "You don't have enough to do that!", 3, Color( 10, 200, 10, 255 ) )
+ return
+ end
+ startProcessGeneric(player,"Drinking some water",1,finisheddrink)
+end
+net.Receive( "gms_drinkwaterbottle", drink)
+
+ITEM.Actions = {}
+genericMakeDroppable(ITEM)
+ITEM.Actions["Drink Water"] = drink_client
+
+GMS.RegisterResource(ITEM)