summaryrefslogtreecommitdiff
path: root/gamemode/itemsystem/common.lua
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2016-04-30 15:35:22 -0400
committerAlexander Pickering <alexandermpickering@gmail.com>2016-04-30 15:35:22 -0400
commit603b64b1a93b36f04d25018ec3f53b16dcd84019 (patch)
tree0bd9df6581b745d30f354f12ef420165e57b6bb5 /gamemode/itemsystem/common.lua
parent677682840305841d4538c6f5d5151f36959ae56f (diff)
downloadgmstranded-603b64b1a93b36f04d25018ec3f53b16dcd84019.tar.gz
gmstranded-603b64b1a93b36f04d25018ec3f53b16dcd84019.tar.bz2
gmstranded-603b64b1a93b36f04d25018ec3f53b16dcd84019.zip
Fixed plant eating
Diffstat (limited to 'gamemode/itemsystem/common.lua')
-rw-r--r--gamemode/itemsystem/common.lua69
1 files changed, 67 insertions, 2 deletions
diff --git a/gamemode/itemsystem/common.lua b/gamemode/itemsystem/common.lua
index 5a47c24..b002a43 100644
--- a/gamemode/itemsystem/common.lua
+++ b/gamemode/itemsystem/common.lua
@@ -17,9 +17,44 @@ function startProcessGeneric(player, string, time, ondone)
end)
end
-local function plant(player, planttype)
- print("Plant method called!")
+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)
@@ -30,3 +65,33 @@ function genericMakePlantable( tbl )
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