summaryrefslogtreecommitdiff
path: root/gamemode/structuresystem/loadstructures.lua
blob: 858d97648e3c66bd1fe4d097085aae9f85a5fe34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
print("Loading structures!")
GMS = GMS or {}
GMS.Structures = GMS.Structures or {}
GMS.UniqueStructures = {}

function registerStructure(tbl)
  assert(tbl.Name != nil, "Structure's name is nil!")
  GMS.Structures[tbl.Name] = tbl
end

concommand.Add("gms_spawnstructure",function(ply,cmd,args)
  if !ply:IsDeveloper() then return end
  assert(args[1] != "","Failed to find structure name")
  assert(GMS.Structures[args[1]] != nil, "Structure \"" .. args[1] .. "\" does not exist!")

  local tr = ply:GetEyeTrace()
  local e = ents.Create("gms_generic_structure")

  local tbl = GMS.Structures[args[1]]
  if tbl.uniquedata then
    tbl = table.Copy(tbl)
    GMS.UniqueStructures[e:EntIndex()] = tbl
  end

  for k,v in pairs(tbl) do
    print("Setting " .. k .. " to")
    print(v)
    e[k] = v
  end
  e:Spawn()
  e:SetPos(tr.HitPos)
  SPropProtection.PlayerMakePropOwner( ply, e )
  --e:SetNWString("Owner",ply:Nick())
end)