diff options
Diffstat (limited to 'gamemode/shared/itemsystem/item_common.lua')
| -rw-r--r-- | gamemode/shared/itemsystem/item_common.lua | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/gamemode/shared/itemsystem/item_common.lua b/gamemode/shared/itemsystem/item_common.lua deleted file mode 100644 index b4b7cce..0000000 --- a/gamemode/shared/itemsystem/item_common.lua +++ /dev/null @@ -1,76 +0,0 @@ -if CLIENT then - ART.DropItem = function(item) - local i = item - print("Trying to drop item, Item was ") - PrintTable(item) - return function() - local data = item:Serialize() - net.Start("dropitem") - net.WriteString(item.Name) - net.WriteUInt(#data,32) - net.WriteData(data,#data) - net.SendToServer() - end - end - -else - util.AddNetworkString("dropitem") - - function gencompareto(item) - --Two items are equal if their Serialize()s are the same. - local tserialize = item:Serialize() - return function(otheritem) - local oserialize = otheritem:Serialize() - return tserialize == oserialize - end - end - - function ART.CreateDroppedItem(itemtbl, where) - local e = ents.Create("art_droppeditem") - e.Model = "models/props_junk/Rock001a.mdl" - e.Item = itemtbl - e:SetPos(where) - e:Spawn() - end - - net.Receive("dropitem",function(len,ply) - local itemtype = net.ReadString() - local itemdatalen = net.ReadUInt(32) - local itemdata = net.ReadData(itemdatalen) - local itemtbl = ART.GetItemByName(itemtype) - local item = itemtbl:DeSerialize(itemdata) - - print("I want to drop:") - PrintTable(item) - print("Do I have one?") - local row,col,n = ply:HasItem(gencompareto(item)) - print("row",row,"col",col,"n",n) - --To find out where to drop the item, go out from player's view, then down. - local pes = ply:GetPos()+Vector(0,0,64) - local pee = ply:GetForward()*50 + Vector(0,0,64) + ply:GetPos() - local tr1d = { - ["start"] = pes, - ["endpos"] = pee, - ["filter"] = ply, - } - local tr1r = util.TraceLine(tr1d) - local fes - if tr1r.hit then --Use where it hit and go down - fes = tr1r.HitPos - else --Use the spot 50 units in front of us - fes = pee - end - local tr2d = { - ["start"] = fes, - ["endpos"] = fes + Vector(0,0,-64), - } - local tr2r = util.TraceLine(tr2d) - local itempos = tr2r.HitPos - print("Dropping item at",itempos) - if row and col and n then - print("DropItem is",ART.DropItem) - ART.CreateDroppedItem(item,itempos) - ply:RemoveItemAt(n,row,col) - end - end) -end |
