aboutsummaryrefslogtreecommitdiff
path: root/gamemode/shared/system_water.lua
diff options
context:
space:
mode:
authorApickx <Apickx@cogarr.org>2015-12-28 19:10:44 -0500
committerApickx <Apickx@cogarr.org>2015-12-28 19:10:44 -0500
commit5c4ebc932d8c02522802c842d43d863d89aca162 (patch)
tree6be7ad664bdf060127e6df6baa72beaf508aa149 /gamemode/shared/system_water.lua
downloadwintersurvival2-5c4ebc932d8c02522802c842d43d863d89aca162.tar.gz
wintersurvival2-5c4ebc932d8c02522802c842d43d863d89aca162.tar.bz2
wintersurvival2-5c4ebc932d8c02522802c842d43d863d89aca162.zip
Initial commit
Diffstat (limited to 'gamemode/shared/system_water.lua')
-rw-r--r--gamemode/shared/system_water.lua53
1 files changed, 53 insertions, 0 deletions
diff --git a/gamemode/shared/system_water.lua b/gamemode/shared/system_water.lua
new file mode 100644
index 0000000..f55dd53
--- /dev/null
+++ b/gamemode/shared/system_water.lua
@@ -0,0 +1,53 @@
+
+local meta = FindMetaTable("Player")
+
+if (SERVER) then
+ util.AddNetworkString("SetWater")
+
+ local Tick = CurTime()
+
+ function meta:SetWater(s)
+ if (s > 100) then self:TakeDamage(s-100) s = 100 end
+ s = math.Clamp(s,0,100)
+
+ self.Water = s
+
+ net.Start("SetWater")
+ net.WriteUInt(s,8)
+ net.Send(self)
+ end
+
+ function meta:AddWater(s)
+ self:SetWater(self:GetWater()+s)
+ end
+
+ hook.Add("Tick","Water",function()
+ if (Tick < CurTime()) then
+ for k,v in pairs(player.GetAllHumans()) do
+ v:AddWater(1)
+ end
+
+ Tick = CurTime()+3.5
+ end
+ end)
+
+ hook.Add("KeyPress","FindWater",function(pl,key)
+ if (key == IN_USE) then
+ local tr = util.TraceLine({start=pl:GetShootPos(),endpos=pl:GetShootPos()+pl:GetAimVector()*200,filter=pl})
+ local A = util.PointContents( tr.HitPos )
+
+ if (A == CONTENTS_WATER or A == CONTENTS_WATER+CONTENTS_TRANSLUCENT ) then
+ pl:AddWater(-20)
+ end
+ end
+ end)
+else
+ net.Receive("SetWater",function()
+ LocalPlayer().Water = net.ReadUInt(8)
+ end)
+end
+
+function meta:GetWater()
+ return self.Water or 0
+end
+ \ No newline at end of file