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
35
36
37
38
39
40
41
42
|
local log = nrequire("log.lua")
local function run_csfile(txt,name)
assert(#txt > 0, "File was size 0 on: " .. name)
local ptr = CompileString(txt,name,false)
if type(ptr) == "function" then
ptr()
else
log.error(ptr)
end
end
net.Receive("artery_respondfile",function()
local filename = net.ReadString()
local filetext = net.ReadString()
local dirname = string.GetPathFromFilename(filename)
file.CreateDir("artery/client/files/" .. dirname)
assert(#filetext > 0, "Retreived a size 0 file: " .. filename)
file.Write("artery/client/files/" .. filename,filetext)
run_csfile(filetext,filename)
end)
net.Receive("artery_loadfile",function()
local filename = net.ReadString()
local hash = net.ReadUInt(32)
local cache = file.Read("artery/client/files/" .. filename,"DATA")
if cache == nil then --We don't have this file downloaded!
net.Start("artery_requestcsfile")
net.WriteString(filename)
net.SendToServer()
return
end
local thash = tonumber(util.CRC(cache))
if hash != thash then
print("I need to load a file",filename," but my hash was old, redownloading!")
net.Start("artery_requestcsfile")
net.WriteString(filename)
net.SendToServer()
else
run_csfile(cache,filename)
end
end)
|