Skip to content

Commit 45ccb77

Browse files
committed
navmesh fixes
1 parent 3e444bb commit 45ccb77

File tree

1 file changed

+39
-21
lines changed

1 file changed

+39
-21
lines changed

extras/navmesh.lua

Lines changed: 39 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
1-
print"navmesh.lua running..."
1+
local function dbg(...)
2+
Msg"[navmesh.lua] " print(...)
3+
end
4+
5+
dbg"Loaded..."
26
local navmeshregen
37
pcall(require,'landmark')
48
if not landmark or not landmark.get then
59
system.FlashWindow()
6-
print"UNABLE TO LOAD LANDMARK MODULE"
10+
dbg"UNABLE TO LOAD LANDMARK MODULE"
711
end
812

913
if GetConVar("con_nprint_bgalpha"):GetString()=="quit" then
10-
print "quitting..."
14+
dbg "quitting..."
1115
RunConsoleCommand("exitgame")
1216
if game.ConsoleCommand then
1317
game.ConsoleCommand( "exitgame\n" )
@@ -46,23 +50,26 @@ hook.Add("Think","agwegwegg",function()
4650
if i>0 then return end
4751
hook.Remove("Think","agwegwegg")
4852

49-
print"\n!!!!!BUILDING NAVMESH!!!!!!!!\n"
53+
dbg"\n!!!!!BUILDING NAVMESH!!!!!!!!\n"
5054
if not navmeshregen then
51-
if not navmesh.IsLoaded() then navmesh.Load() end
55+
if not navmesh.IsLoaded() then
56+
navmesh.Load()
57+
end
5258

5359
if navmesh.IsLoaded() then
60+
dbg"navmesh.IsLoaded()==true?"
5461
if (file.Size("maps/"..game.GetMap()..'.nav','GAME') or -1) > 1 then
55-
print"navmesh found, leaving..."
62+
dbg"navmesh found, leaving..."
5663
RunConsoleCommand("exitgame")
5764
return
5865
else
59-
print"navmesh oversmall, regenerating"
66+
dbg"navmesh oversmall, regenerating"
6067
end
6168
end
6269
end
6370

6471
if not file.Exists("navmesh_landmarks.txt", 'DATA') then
65-
print "navmesh_landmarks.txt MISSING"
72+
dbg "navmesh_landmarks.txt MISSING"
6673
system.FlashWindow()
6774
return
6875
end
@@ -78,27 +85,38 @@ hook.Add("Think","agwegwegg",function()
7885
if pos then
7986
pos = pos + offset
8087
local tr = util.TraceLine{
81-
start = pos,
82-
endpos = pos - Vector(0, 0, 512)
88+
start = pos+Vector(0,0,16),
89+
endpos = pos + Vector(0, 0, -2048)
8390
}
84-
if tr.Hit then
91+
if tr.Hit and util.IsInWorld(tr.HitPos)and util.IsInWorld(tr.HitPos+Vector(0,0,70)) then
8592
navmesh.AddWalkableSeed(tr.HitPos, tr.HitNormal)
93+
dbg("AddWalkableSeed(Vector('"..tostring(tr.HitPos).."'), Vector('"..tostring(tr.HitNormal).."'))")
8694
debugoverlay.Cross(tr.HitPos,128,120,Color(255,255,255),true)
8795
err=false
88-
else err="trace did not hit" end
96+
else err="trace did not hit: "..tostring(lm) end
8997

90-
else err="landmark missing or invalid" end
91-
else err="could not parse name" end
98+
else err="landmark missing or invalid: "..tostring(lm) end
99+
else err="could not parse name: "..tostring(lm) end
92100
if err then
93-
system.FlashWindow = system.FlashWindow or function() print("WTF?",SERVER,CLIENT,MENU) end
94-
print(("Adding seed did not succeed: %s %q"):format(err,lm))
101+
system.FlashWindow = system.FlashWindow or function() dbg("WTF?",SERVER,CLIENT,MENU) end
102+
dbg(("Adding seed did not succeed: %s %q"):format(err,lm))
95103
end
96104
end
97-
print("begin",navmesh.BeginGeneration())
105+
106+
local last = SysTime()
107+
local start = SysTime()
108+
hook.Add("Think","elapseprint",function()
109+
local now = SysTime()
110+
if now-last > 10 then
111+
last = now
112+
dbg("Elapsed:",string.NiceTime(now-start))
113+
end
114+
end)
115+
dbg("begin",navmesh.BeginGeneration())
98116

99117
hook.Add("ShutDown","agwegwegg",function()
100-
print"Quitting...?"
101-
system.FlashWindow = system.FlashWindow or function() print("WTF?",SERVER,CLIENT,MENU) end
118+
dbg"Attempting to exit (feel free to close the window after 30 seconds)"
119+
system.FlashWindow = system.FlashWindow or function() dbg("WTF?",SERVER,CLIENT,MENU) end
102120
system.FlashWindow()
103121
RunConsoleCommand("exitgame")
104122
if CLIENT then
@@ -110,12 +128,12 @@ hook.Add("Think","agwegwegg",function()
110128
game.ConsoleCommand( "exitgame\n" )
111129
end
112130
end)
113-
timer.Simple(1,function() print"built test?" end)
131+
timer.Simple(1,function() dbg"Testing if built" end)
114132
timer.Simple(60*2,function()
115133
hook.Add("Think",'agwegwegg',function()
116134
if navmesh.IsGenerating() then return end
117135
hook.Remove("Think","agwegwegg")
118-
print("save",navmesh.Save())
136+
dbg("save",navmesh.Save())
119137
RunConsoleCommand("exitgame")
120138
end)
121139

0 commit comments

Comments
 (0)