add checks for gate definition errors

This commit is contained in:
Redo 2020-09-09 23:00:29 -05:00
parent 94bb85c31d
commit 1dce343c87
2 changed files with 7 additions and 1 deletions

View File

@ -26,6 +26,7 @@ function GateDefinition:new(objref, name, description, init, logic, input, globa
o.init = initfunc() or function()end o.init = initfunc() or function()end
else else
print("Error loading init func for ".. (name or "")) print("Error loading init func for ".. (name or ""))
print(init)
end end
local logicfunc = loadstring(tostring(logic)) local logicfunc = loadstring(tostring(logic))
@ -41,6 +42,7 @@ function GateDefinition:new(objref, name, description, init, logic, input, globa
o.input = inputfunc() or function()end o.input = inputfunc() or function()end
else else
print("Error loading input function for " .. (name or "")) print("Error loading input function for " .. (name or ""))
print(input)
end end
local globalfunc = loadstring(tostring(global)) local globalfunc = loadstring(tostring(global))
@ -48,6 +50,7 @@ function GateDefinition:new(objref, name, description, init, logic, input, globa
globalfunc() globalfunc()
else else
print("Error loading global function for ".. (name or "")) print("Error loading global function for ".. (name or ""))
print(global)
end end
setmetatable(o, self) setmetatable(o, self)

View File

@ -145,7 +145,10 @@ while 1 do
i = i + 4 i = i + 4
elseif data[i] == "G" then elseif data[i] == "G" then
local objref = tonumber(data[i+1]) local objref = tonumber(data[i+1])
local definition = sim:getdefinitionbyref(tonumber(data[i+2])) or GateDefinition local definition = sim:getdefinitionbyref(tonumber(data[i+2]))
assert(definition, "No gate definition for objref "..objref)
local position = vectotable(data[i+3]) local position = vectotable(data[i+3])
local rotation = tonumber(data[i+4]) local rotation = tonumber(data[i+4])
local gate = definition:constructgate(objref, position, rotation) local gate = definition:constructgate(objref, position, rotation)