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)