dobrograd-13-06-2022/garrysmod/addons/gmod-tools/lua/autorun/particlefiletest.lua
Jonny_Bro (Nikita) e4d5311906 first commit
2023-11-16 15:01:19 +05:00

128 lines
No EOL
4.2 KiB
Lua

AddCSLuaFile()
//MsgN("Added concommand for particle read test!")
function ParticleControl_FileReadTest()
MsgN("")
MsgN("")
MsgN("")
MsgN("")
MsgN("")
MsgN("=====================================================")
MsgN("STEP 1: Reading the file")
MsgN("=====================================================")
MsgN("")
local filestr = file.Read("particlelists/particlefiletest.lua","LUA")
if !filestr then
MsgN("FAILURE! We tried to read the file (particlelists/particlefiletest.lua) and didn't get anything. The file can't be found, or it isn't readable, or something, which doesn't make any sense, since the actual tool got farther than this.")
return
end
if type(filestr) != "string" then
MsgN("FAILURE! We read the file but we got back a " .. type(filestr) .. "instead of a string. What!? Here's what we got:")
MsgN("")
MsgN(filestr)
return
end
MsgN("SUCCESS! We read the file and got back a string. Here's its contents:")
MsgN("")
MsgN(filestr)
MsgN("")
MsgN("")
MsgN("")
MsgN("")
MsgN("")
MsgN("=====================================================")
MsgN("STEP 2: Converting it to a table")
MsgN("=====================================================")
MsgN("")
local keyvalues = util.KeyValuesToTable( filestr, false, true )
if !keyvalues then
MsgN("FAILURE! We tried to convert it to a table, but we didn't get anything.")
return
end
if (table.Count(keyvalues) == 0) then
MsgN("FAILURE! We tried to convert it, but we got an empty table. Here's its contents, by which I mean a blank space unless something's weird here:")
MsgN("")
PrintTable(keyvalues)
return
end
MsgN("SUCCESS! We converted it and got a table of stuff. Here's its contents:")
MsgN("")
PrintTable(keyvalues)
MsgN("")
MsgN("")
MsgN("")
MsgN("")
MsgN("")
MsgN("=====================================================")
MsgN("STEP 3: Reading the table")
MsgN("=====================================================")
MsgN("")
if !keyvalues.Info then
MsgN("FAILURE! We couldn't find a key called \"Info\" inside the table. Is something wrong with the table we got? Like some blank spaces in the key name, or weird capitalization, or something like that which means it's technically not called \"Info\"? Or is the table's formatting messed up? Here's all of the keys we COULD find inside the table, with and without quotes just in case there's weird spaces:")
MsgN("")
for k, v in pairs (keyvalues) do
MsgN("\"" .. k .. "\"")
end
MsgN("")
for k, v in pairs (keyvalues) do
MsgN(k)
end
return
end
if type(keyvalues.Info) != "table" then
MsgN("FAILURE! The key called \"Info\" inside the table was something other than a sub-table. It was a " .. type(keyvalues.Info) .. " instead. Something's wrong with the table we got. Here's what \"Info\" is:")
MsgN("")
MsgN(keyvalues.Info)
return
end
MsgN("Found the sub-table called \"Info\" inside the table...")
MsgN("")
if !keyvalues.Info.CategoryName then
MsgN("FAILURE! We couldn't find the \"CategoryName\" inside the \"Info\" subtable. Something's wrong with the table we got. Here's \"Info\"'s contents:")
MsgN("")
PrintTable(keyvalues.Info)
return
end
if type(keyvalues.Info.CategoryName) != "string" then
MsgN("FAILURE! The \"CategoryName\" inside the \"Info\" subtable was something other than a string. Something's wrong with the table we got. Here's \"Info\"'s contents:")
MsgN("")
PrintTable(keyvalues.Info)
return
end
MsgN("SUCCESS! We read the table. It's for a category called " .. keyvalues.Info.CategoryName .. ", and everything else should be there too. The table contents are back up there in Step 2 and they should look normal. Congratulations, everything's working fine! If we were doing this same stuff in the actual tool, it'd use the table to make a list of particle effects. But if the tool was working perfectly for you, then you wouldn't be running this debug thing, now would you? Looks like we're back to square one here.")
end
if SERVER then
concommand.Add("particlereadtest_server", function()
MsgN("Beginning SERVERSIDE particle file read test!")
ParticleControl_FileReadTest()
end)
end
if CLIENT then
concommand.Add("particlereadtest_client", function()
MsgN("Beginning CLIENTSIDE particle file read test!")
ParticleControl_FileReadTest()
end)
end