spaces->tabs + cleanup + pathing fixes
This commit is contained in:
@@ -6,47 +6,47 @@ local os = _G.os
|
||||
local peripheral = _G.peripheral
|
||||
|
||||
local containers = {
|
||||
manipulator = true,
|
||||
neuralInterface = true,
|
||||
manipulator = true,
|
||||
neuralInterface = true,
|
||||
}
|
||||
|
||||
local function getModules(dev, side)
|
||||
local list = { }
|
||||
local list = { }
|
||||
|
||||
if dev then
|
||||
for _, module in pairs(dev.listModules()) do
|
||||
list[module] = Util.shallowCopy(dev)
|
||||
list[module].name = module
|
||||
list[module].type = module
|
||||
list[module].side = side
|
||||
end
|
||||
end
|
||||
return list
|
||||
if dev then
|
||||
for _, module in pairs(dev.listModules()) do
|
||||
list[module] = Util.shallowCopy(dev)
|
||||
list[module].name = module
|
||||
list[module].type = module
|
||||
list[module].side = side
|
||||
end
|
||||
end
|
||||
return list
|
||||
end
|
||||
|
||||
for _,v in pairs(device) do
|
||||
if containers[v.type] then
|
||||
local list = getModules(v, v.side)
|
||||
for k, dev in pairs(list) do
|
||||
-- neural and attached modules have precedence over manipulator modules
|
||||
if not device[k] or v.type ~= 'manipulator' then
|
||||
device[k] = dev
|
||||
end
|
||||
end
|
||||
end
|
||||
if containers[v.type] then
|
||||
local list = getModules(v, v.side)
|
||||
for k, dev in pairs(list) do
|
||||
-- neural and attached modules have precedence over manipulator modules
|
||||
if not device[k] or v.type ~= 'manipulator' then
|
||||
device[k] = dev
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- register modules as peripherals
|
||||
kernel.hook('device_attach', function(_, eventData)
|
||||
local dev = eventData[2]
|
||||
local dev = eventData[2]
|
||||
|
||||
if dev and containers[dev.type] then
|
||||
local list = getModules(peripheral.wrap(dev.side), dev.side)
|
||||
for k,v in pairs(list) do
|
||||
if not device[k] or dev.type ~= 'manipulator' then
|
||||
device[k] = v
|
||||
os.queueEvent('device_attach', k, v)
|
||||
end
|
||||
end
|
||||
end
|
||||
if dev and containers[dev.type] then
|
||||
local list = getModules(peripheral.wrap(dev.side), dev.side)
|
||||
for k,v in pairs(list) do
|
||||
if not device[k] or dev.type ~= 'manipulator' then
|
||||
device[k] = v
|
||||
os.queueEvent('device_attach', k, v)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -2,26 +2,26 @@ local device = _G.device
|
||||
local kernel = _G.kernel
|
||||
|
||||
local function register(v)
|
||||
if v and v.isWireless and v.isAccessPoint and v.getNamesRemote then
|
||||
v._children = { }
|
||||
for _, name in pairs(v.getNamesRemote()) do
|
||||
local dev = v.getMethodsRemote(name)
|
||||
if dev then
|
||||
dev.name = name
|
||||
dev.side = name
|
||||
dev.type = v.getTypeRemote(name)
|
||||
device[name] = dev
|
||||
table.insert(v._children, dev)
|
||||
end
|
||||
end
|
||||
end
|
||||
if v and v.isWireless and v.isAccessPoint and v.getNamesRemote then
|
||||
v._children = { }
|
||||
for _, name in pairs(v.getNamesRemote()) do
|
||||
local dev = v.getMethodsRemote(name)
|
||||
if dev then
|
||||
dev.name = name
|
||||
dev.side = name
|
||||
dev.type = v.getTypeRemote(name)
|
||||
device[name] = dev
|
||||
table.insert(v._children, dev)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for _,v in pairs(device) do
|
||||
register(v)
|
||||
register(v)
|
||||
end
|
||||
|
||||
-- register oc devices as peripherals
|
||||
kernel.hook('device_attach', function(_, eventData)
|
||||
register(device[eventData[2]])
|
||||
register(device[eventData[2]])
|
||||
end)
|
||||
|
||||
@@ -6,7 +6,9 @@ local help = _G.help
|
||||
local shell = _ENV.shell
|
||||
|
||||
if not fs.exists('usr/config/packages') then
|
||||
Packages:downloadList()
|
||||
pcall(function()
|
||||
Packages:downloadList()
|
||||
end)
|
||||
end
|
||||
|
||||
local appPaths = Util.split(shell.path(), '(.-):')
|
||||
|
||||
@@ -52,6 +52,7 @@ function turtle.resetState()
|
||||
state.movePolicy = _defaultMove
|
||||
state.moveCallback = noop
|
||||
state.blacklist = nil
|
||||
state.reference = nil -- gps reference when converting to relative coords
|
||||
Pathing.reset()
|
||||
return true
|
||||
end
|
||||
@@ -77,8 +78,6 @@ local function _dig(name, inspect, dig)
|
||||
return dig()
|
||||
end
|
||||
|
||||
-- override dig
|
||||
-- optionally check that the block is a certain type
|
||||
function turtle.dig(s)
|
||||
return _dig(s, turtle.inspect, turtle.native.dig)
|
||||
end
|
||||
@@ -359,7 +358,7 @@ function turtle.set(args)
|
||||
turtle.setDigPolicy(turtle.getPolicy(v))
|
||||
|
||||
elseif k == 'movePolicy' then
|
||||
turtle.setMovePolicy(turtle.getPolicy(v))
|
||||
state.movePolicy = turtle.getPolicy(v)
|
||||
|
||||
elseif k == 'movementStrategy' then
|
||||
turtle.setMovementStrategy(v)
|
||||
@@ -379,6 +378,9 @@ function turtle.set(args)
|
||||
elseif k == 'blacklist' then
|
||||
state.blacklist = v
|
||||
|
||||
elseif k == 'reference' then
|
||||
state.reference = v
|
||||
|
||||
else
|
||||
error('Invalid turle.set: ' .. tostring(k))
|
||||
end
|
||||
@@ -426,6 +428,10 @@ function turtle.setHeading(heading)
|
||||
return false, 'Invalid heading'
|
||||
end
|
||||
|
||||
if heading == turtle.point.heading then
|
||||
return turtle.point
|
||||
end
|
||||
|
||||
local fi = Point.facings[heading]
|
||||
if not fi then
|
||||
return false, 'Invalid heading'
|
||||
|
||||
Reference in New Issue
Block a user