Difference between revisions of "User:Dr. Strangelove/ReadModule"

From RimWorld Wiki
Jump to navigation Jump to search
m
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
local timeA = os.clock()
+
{{#invoke:Test|query|Hare}}
local p = {}
 
 
 
local data = mw.loadData('Module:Test/data')
 
 
 
function find_key_in_table(find_key, in_table)
 
for key, val in pairs(in_table) do
 
if key == find_key then return val
 
elseif type(val) == "table" then
 
local var = find_key_in_table(find_key, val)
 
if var then return var end
 
end
 
end
 
end
 
 
 
-- use "ParentName" to identify the parent
 
-- side effect (data table as parameter)
 
function find_using_inheritance(find_key, in_table)
 
local found = find_key_in_table(find_key, in_table)
 
if found then return found
 
elseif in_table.ParentName then
 
found = find_using_inheritance(find_key, find_key_in_table(in_table.ParentName, data))
 
if found then return found end
 
end
 
end
 
 
 
function p.get(frame, data)
 
local parent = find_key_in_table(frame.args[1], data)
 
local found = find_using_inheritance(frame.args[2], parent)
 
return found
 
end
 
 
 
local timeB = os.clock()
 
 
 
mw.log(timeB-timeA)
 
 
 
return p
 

Latest revision as of 18:03, 13 April 2021