Revert "Nonfunctional virtual component support"

This reverts commit f425e0d690.
This commit is contained in:
TheWahlolly
2025-06-14 18:37:51 +03:00
parent f425e0d690
commit bc06ec457d
3 changed files with 12 additions and 81 deletions
+2 -2
View File
@@ -12,8 +12,8 @@ local conversionTables = {
}
}
function table.find(tab, item)
for k, v in pairs(tab) do
function table.find(table, item)
for k, v in pairs(table) do
if v == item then
return k
end
+9 -76
View File
@@ -1,82 +1,15 @@
local compLib
local LLcomponent
local componentlib
if table.copy then
compLib = table.copy(component)
LLcomponent = table.copy(component)
componentlib = table.copy(component)
else
compLib = {}
LLcomponent = component
componentlib = {}
end
local ocelot = LLcomponent.proxy(LLcomponent.list("ocelot")())
ocelot.log("loaded")
_G.componentlib = {["additions"] = {}, ["removals"] = {}}
compLib.virtual = {}
function compLib.virtual.add(address, componentType, proxy)
function componentlib.get(address)
checkArg(1, address, "string")
checkArg(2, componentType, "string")
checkArg(3, proxy, "table")
componentlib.additions[address] = {["componentType"] = componentType, ["proxy"] = proxy}
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
assert(#address >= 3, "abbreviated address must be at least 3 characters long")
local components = component.list()
for currentAddress, name in pairs(components) do
if currentAddress:find("^" .. address) then
return(currentAddress)
end
@@ -84,6 +17,6 @@ function compLib.get(address)
return nil, "full address not found"
end
compLib.invoke = component.invoke -- trust me, this is needed
componentlib.invoke = component.invoke
return compLib
return componentlib
+1 -3
View File
@@ -25,9 +25,7 @@ gpu.setBackground(0x000000)
gpu.fill(1, 1, resx, resy, " ")
local result, reason = xpcall(loadthething, handleError)
if not result then
if import then
local computer = import("computer")
end
local computer = import("computer") or computer
gpu.setBackground(0x000000)
gpu.fill(1, 1, resx, resy, " ")
gpu.setBackground(0x800000)