OpenComputerScripts/util.lua

61 lines
1.3 KiB
Lua
Raw Normal View History

2017-10-09 22:53:37 +08:00
local component=require("component")
function getTableSize(t)
local cnt=0
for k in pairs(t) do
cnt=cnt+1
end
return cnt
end
function isTableEmpty(t)
return getTableSize(t) == 0
end
function rawproxy(id)
return component.proxy(id)
end
function proxy(componentType,beginWith)
local t=component.list(componentType)
local sz=getTableSize(t)
if(sz==0) then
print("Query List is Empty")
return nil
elseif(sz==1) then
for k in pairs(t) do
return rawproxy(k)
end
else
if(beginWith == nil) then
2017-10-25 14:37:45 +08:00
print("beginWith value required.")
2017-10-09 22:53:37 +08:00
return nil
end
if(type(beginWith) ~= "string") then
print("beginWith is not string")
return nil
end
local bsz=string.len(beginWith)
2017-10-25 14:37:45 +08:00
local traw
local cnt=0
2017-10-09 22:53:37 +08:00
for k in pairs(t) do
if(string.sub(k,1,bsz) == beginWith) then
2017-10-25 14:37:45 +08:00
if(cnt==0) then
traw=rawproxy(k)
cnt=1
else
print("Found more than 1 target.")
return nil
end
2017-10-09 22:53:37 +08:00
end
end
2017-10-25 14:37:45 +08:00
if(cnt==0) then
print("Not found with beginWith value")
return nil
else
return traw
end
2017-10-09 22:53:37 +08:00
end
end