diff options
Diffstat (limited to 'data/artery/global/sv_dupboat.lua')
| -rw-r--r-- | data/artery/global/sv_dupboat.lua | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/data/artery/global/sv_dupboat.lua b/data/artery/global/sv_dupboat.lua new file mode 100644 index 0000000..1a32d0c --- /dev/null +++ b/data/artery/global/sv_dupboat.lua @@ -0,0 +1,38 @@ +if not nrequire then return end +duplicator.Allow("prop_physics") + +local dups = {} + +local function copyplayer(ply,cmd,args) + local tr = util.TraceLine({ + start = ply:GetPos(), + endpos = ply:GetPos() + Vector(0,0,-100), + }) + local ent = tr.Entity + print('Ent is', ent) + duplicator.SetLocalPos( ply:GetPos()) + local dup = duplicator.Copy(ent) + duplicator.SetLocalPos(Vector(0,0,0)) + print("After normalizing, dup was") + PrintTable(dup) + dups[args[1]] = dup + print("saved boat as", args[1]) +end + +local function pasteplayer(ply,cmd,args) + print("Pasteing ", args[1]) + local dup = dups[args[1]] + print("Before setting up under player, dup is") + PrintTable(dup) + for k,v in pairs(dup.Entities) do + v.Pos = v.Pos + ply:GetPos() + end + print("After setting up under player, dup is") + PrintTable(dup) + duplicator.SetLocalPos( ply:GetPos()) + duplicator.Paste(ply,dup.Entities, dup.Constraints) + duplicator.SetLocalPos(Vector(0,0,0)) +end + +concommand.Add("artery_copyboat",copyplayer) +concommand.Add("artery_pasteboat",pasteplayer) |
