Revert "Nonfunctional virtual component support"
This reverts commit f425e0d690.
This commit is contained in:
@@ -12,8 +12,8 @@ local conversionTables = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function table.find(tab, item)
|
function table.find(table, item)
|
||||||
for k, v in pairs(tab) do
|
for k, v in pairs(table) do
|
||||||
if v == item then
|
if v == item then
|
||||||
return k
|
return k
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,82 +1,15 @@
|
|||||||
local compLib
|
local componentlib
|
||||||
local LLcomponent
|
|
||||||
if table.copy then
|
if table.copy then
|
||||||
compLib = table.copy(component)
|
componentlib = table.copy(component)
|
||||||
LLcomponent = table.copy(component)
|
|
||||||
else
|
else
|
||||||
compLib = {}
|
componentlib = {}
|
||||||
LLcomponent = component
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local ocelot = LLcomponent.proxy(LLcomponent.list("ocelot")())
|
function componentlib.get(address)
|
||||||
ocelot.log("loaded")
|
|
||||||
|
|
||||||
_G.componentlib = {["additions"] = {}, ["removals"] = {}}
|
|
||||||
compLib.virtual = {}
|
|
||||||
|
|
||||||
function compLib.virtual.add(address, componentType, proxy)
|
|
||||||
checkArg(1, address, "string")
|
checkArg(1, address, "string")
|
||||||
checkArg(2, componentType, "string")
|
assert(#address >= 3, "abbreviated address must be at least 3 characters long")
|
||||||
checkArg(3, proxy, "table")
|
local components = component.list()
|
||||||
componentlib.additions[address] = {["componentType"] = componentType, ["proxy"] = proxy}
|
for currentAddress, name in pairs(components) do
|
||||||
if componentlib.removals[address] then
|
|
||||||
componentlib.removals[address] = nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function compLib.virtual.remove(address)
|
|
||||||
checkArg(1, address, "string")
|
|
||||||
if componentlib.additions[address] then
|
|
||||||
componentlib.additions[address] = nil
|
|
||||||
else
|
|
||||||
table.insert(componentlib.removals, address)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function compLib.list(componentType)
|
|
||||||
checkArg(1, componentType, "string", "nil")
|
|
||||||
local componentList = table.copy(LLcomponent.list(componentType))
|
|
||||||
for address, dataTable in pairs(componentlib.additions) do
|
|
||||||
if dataTable.componentType == componentType or not componentType then
|
|
||||||
componentList[address] = dataTable.componentType
|
|
||||||
end
|
|
||||||
end
|
|
||||||
for _, address in pairs(componentlib.removals) do
|
|
||||||
componentList[address] = nil
|
|
||||||
end
|
|
||||||
local i, value
|
|
||||||
setmetatable(componentList, {__call = function(self)
|
|
||||||
i, value = next(self, i)
|
|
||||||
return i, value
|
|
||||||
end})
|
|
||||||
return componentList
|
|
||||||
end
|
|
||||||
|
|
||||||
function compLib.proxy(address)
|
|
||||||
if componentlib.additions[address] then
|
|
||||||
ocelot.log("vcomponent")
|
|
||||||
return componentlib.additions[address].proxy
|
|
||||||
else
|
|
||||||
return LLcomponent.proxy(address)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function compLib.invoke(address, funcName, ...)
|
|
||||||
ocelot.log("Invoking " .. funcName .. " from " .. address)
|
|
||||||
if componentlib.additions[address] then
|
|
||||||
ocelot.log("vcomponent")
|
|
||||||
return componentlib.additions[address].proxy[funcName](...)
|
|
||||||
else
|
|
||||||
return LLcomponent.invoke(address, funcName, ...)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function compLib.get(address)
|
|
||||||
checkArg(1, address, "string")
|
|
||||||
if #address < 3 then
|
|
||||||
return nil, "abbreviated address must be at least 3 characters long"
|
|
||||||
end
|
|
||||||
for currentAddress, name in compLib.list() do
|
|
||||||
if currentAddress:find("^" .. address) then
|
if currentAddress:find("^" .. address) then
|
||||||
return(currentAddress)
|
return(currentAddress)
|
||||||
end
|
end
|
||||||
@@ -84,6 +17,6 @@ function compLib.get(address)
|
|||||||
return nil, "full address not found"
|
return nil, "full address not found"
|
||||||
end
|
end
|
||||||
|
|
||||||
compLib.invoke = component.invoke -- trust me, this is needed
|
componentlib.invoke = component.invoke
|
||||||
|
|
||||||
return compLib
|
return componentlib
|
||||||
|
|||||||
@@ -25,9 +25,7 @@ gpu.setBackground(0x000000)
|
|||||||
gpu.fill(1, 1, resx, resy, " ")
|
gpu.fill(1, 1, resx, resy, " ")
|
||||||
local result, reason = xpcall(loadthething, handleError)
|
local result, reason = xpcall(loadthething, handleError)
|
||||||
if not result then
|
if not result then
|
||||||
if import then
|
local computer = import("computer") or computer
|
||||||
local computer = import("computer")
|
|
||||||
end
|
|
||||||
gpu.setBackground(0x000000)
|
gpu.setBackground(0x000000)
|
||||||
gpu.fill(1, 1, resx, resy, " ")
|
gpu.fill(1, 1, resx, resy, " ")
|
||||||
gpu.setBackground(0x800000)
|
gpu.setBackground(0x800000)
|
||||||
|
|||||||
Reference in New Issue
Block a user