summaryrefslogtreecommitdiff
path: root/gamemode/itemsystem
diff options
context:
space:
mode:
Diffstat (limited to 'gamemode/itemsystem')
-rw-r--r--gamemode/itemsystem/common.lua79
-rw-r--r--gamemode/itemsystem/common_plantable.lua85
2 files changed, 84 insertions, 80 deletions
diff --git a/gamemode/itemsystem/common.lua b/gamemode/itemsystem/common.lua
index 114340b..512bec5 100644
--- a/gamemode/itemsystem/common.lua
+++ b/gamemode/itemsystem/common.lua
@@ -16,82 +16,3 @@ function startProcessGeneric(player, string, time, ondone)
ondone(player)
end)
end
-
-if(SERVER) then
- util.AddNetworkString( "gms_plantseed" )
-end
-local function plant(player, resourcename)
- if(CLIENT) then
- net.Start("gms_plantseed")
- net.WriteString(resourcename)
- net.SendToServer()
- end
- if(SERVER) then
- 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
- if(tbl.OnGrow == nil) then
- print(tbl.Name .. " .OnGrow is nil, this might be a bug!")
- return
- end
-
- 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_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_plantable.lua b/gamemode/itemsystem/common_plantable.lua
index 383d8d2..5e3ad55 100644
--- a/gamemode/itemsystem/common_plantable.lua
+++ b/gamemode/itemsystem/common_plantable.lua
@@ -1 +1,84 @@
-print("Hello from common_plantable.lua!")
+--[[
+You can call genericMakePlantable(ITEM) on items to make them have a plant option.
+Before genericMakePlantable get called, be sure the item has an .GrowTime =number
+and a .OnGrow = function(player)
+]]
+
+if(SERVER) then
+ util.AddNetworkString( "gms_plantseed" )
+end
+local function plant(player, resourcename)
+ if(CLIENT) then
+ net.Start("gms_plantseed")
+ net.WriteString(resourcename)
+ net.SendToServer()
+ end
+ if(SERVER) then
+ 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
+ if(tbl.OnGrow == nil) then
+ print(tbl.Name .. " .OnGrow is nil, this might be a bug!")
+ return
+ end
+
+ 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_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