spaces->tabs + cleanup + pathing fixes

This commit is contained in:
kepler155c@gmail.com
2019-06-18 15:19:24 -04:00
parent 82ec4db50f
commit 3c22a872b0
37 changed files with 1948 additions and 1703 deletions

View File

@@ -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)

View File

@@ -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)

View File

@@ -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(), '(.-):')

View File

@@ -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'