diff --git a/builder/apis/deflatelua.lua b/builder/apis/deflatelua.lua index 57c2cde..f096e0c 100644 --- a/builder/apis/deflatelua.lua +++ b/builder/apis/deflatelua.lua @@ -125,8 +125,6 @@ local assert = assert local error = error local ipairs = ipairs local pairs = pairs -local print = print -local require = require local tostring = tostring local type = type local setmetatable = setmetatable @@ -136,30 +134,12 @@ local table_sort = table.sort local math_max = math.max local string_char = string.char ---[[ - Requires the first module listed that exists, else raises like `require`. - If a non-string is encountered, it is returned. - Second return value is module name loaded (or ''). - --]] -local function requireany(...) - local errs = {} - for i = 1, select('#', ...) do local name = select(i, ...) - if type(name) ~= 'string' then return name, '' end - local ok, mod = pcall(require, name) - if ok then return mod, name end - errs[#errs+1] = mod - end - error(table.concat(errs, '\n'), 2) -end - --local crc32 = require "digest.crc32lua" . crc32_byte --local bit, name_ = requireany('bit', 'bit32', 'bit.numberlua', nil) local bit local crc32 -local DEBUG = false - -- Whether to use `bit` library functions in current module. -- Unlike the crc32 library, it doesn't make much difference in this module. local NATIVE_BITOPS = (bit ~= nil) @@ -176,12 +156,6 @@ local function warn(s) io.stderr:write(s, '\n') end - -local function debug(...) - print('DEBUG', ...) -end - - local function runtime_error(s, level) level = level or 1 error({s}, level+1) @@ -198,7 +172,6 @@ end local function output(outstate, byte) - -- debug('OUTPUT:', s) local window_pos = outstate.window_pos outstate.outbs(byte) outstate.window[window_pos] = byte @@ -240,28 +213,6 @@ local pow2 = memoize(function(n) return 2^n end) -- weak metatable marking objects as bitstream type local is_bitstream = setmetatable({}, {__mode='k'}) - --- DEBUG --- prints LSB first ---[[ -local function bits_tostring(bits, nbits) - local s = '' - local tmp = bits - local function f() - local b = tmp % 2 == 1 and 1 or 0 - s = s .. b - tmp = (tmp - b) / 2 - end - if nbits then - for i=1,nbits do f() end - else - while tmp ~= 0 do f() end - end - - return s -end ---]] - local function bytestream_from_file(fh) local o = {} function o:read() @@ -288,18 +239,9 @@ end local function bytestream_from_function(f) - local i = 0 - local buffer = '' local o = {} function o:read() return f() --- i = i + 1 --- if i > #buffer then --- buffer = f() - -- if not buffer then return end - -- i = 1 --- end --- return buffer:byte(i,i) end return o end @@ -395,13 +337,11 @@ local function HuffmanTable(init, is_full) for val,nbits in pairs(init) do if nbits ~= 0 then t[#t+1] = {val=val, nbits=nbits} - --debug('*',val,nbits) end end else for i=1,#init-2,2 do local firstval, nbits, nextval = init[i], init[i+1], init[i+2] - --debug(val, nextval, nbits) if nbits ~= 0 then for val=firstval,nextval-1 do t[#t+1] = {val=val, nbits=nbits} @@ -422,7 +362,6 @@ local function HuffmanTable(init, is_full) nbits = s.nbits end s.code = code - --debug('huffman code:', i, s.nbits, s.val, code, bits_tostring(code)) code = code + 1 end @@ -433,12 +372,6 @@ local function HuffmanTable(init, is_full) look[s.code] = s.val end - --for _,o in ipairs(t) do - -- debug(':', o.nbits, o.val) - --end - - -- function t:lookup(bits) return look[bits] end - local msb = NATIVE_BITOPS and function(bits, nbits) local res = 0 for i=1,nbits do @@ -448,14 +381,14 @@ local function HuffmanTable(init, is_full) return res end or function(bits, nbits) local res = 0 - for i=1,nbits do + for _=1,nbits do local b = bits % 2 bits = (bits - b) / 2 res = res * 2 + b end return res end - + local tfirstcode = memoize( function(bits) return pow2[minbits] + msb(bits, minbits) end) @@ -470,14 +403,9 @@ local function HuffmanTable(init, is_full) local b = noeof(bs:read()) nbits = nbits + 1 code = code * 2 + b -- MSB first - --[[NATIVE_BITOPS - code = lshift(code, 1) + b -- MSB first - --]] end - --debug('code?', code, bits_tostring(code)) local val = look[code] if val then - --debug('FOUND', val) return val end end @@ -505,15 +433,6 @@ local function parse_gzip_header(bs) local xfl = bs:read(8) -- eXtra FLags local os = bs:read(8) -- Operating System - if DEBUG then - debug("CM=", cm) - debug("FLG=", flg) - debug("MTIME=", mtime) - -- debug("MTIME_str=",os.date("%Y-%m-%d %H:%M:%S",mtime)) -- non-portable - debug("XFL=", xfl) - debug("OS=", os) - end - if not os then runtime_error 'invalid header' end if hasbit(flg, FLG_FEXTRA) then @@ -545,9 +464,6 @@ local function parse_gzip_header(bs) if not crc16 then runtime_error 'invalid header' end -- IMPROVE: check CRC. where is an example .gz file that -- has this set? - if DEBUG then - debug("CRC16=", crc16) - end end end @@ -607,7 +523,6 @@ local function parse_huffmantables(bs) if codelen <= 15 then nrepeat = 1 nbits = codelen - --debug('w', nbits) elseif codelen == 16 then nrepeat = 3 + noeof(bs:read(2)) -- nbits unchanged @@ -645,7 +560,6 @@ local tdecode_dist_base local tdecode_dist_nextrabits local function parse_compressed_item(bs, outstate, littable, disttable) local val = littable:read(bs) - --debug(val, val < 256 and string_char(val)) if val < 256 then -- literal output(outstate, val) elseif val == 256 then -- end of block @@ -660,7 +574,6 @@ local function parse_compressed_item(bs, outstate, littable, disttable) end t[285] = 258 tdecode_len_base = t - --for i=257,285 do debug('T1',i,t[i]) end end if not tdecode_len_nextrabits then local t = {} @@ -677,7 +590,6 @@ local function parse_compressed_item(bs, outstate, littable, disttable) end t[285] = 0 tdecode_len_nextrabits = t - --for i=257,285 do debug('T2',i,t[i]) end end local len_base = tdecode_len_base[val] local nextrabits = tdecode_len_nextrabits[val] @@ -692,7 +604,6 @@ local function parse_compressed_item(bs, outstate, littable, disttable) if i ~= 1 then skip = skip * 2 end end tdecode_dist_base = t - --for i=0,29 do debug('T3',i,t[i]) end end if not tdecode_dist_nextrabits then local t = {} @@ -708,7 +619,6 @@ local function parse_compressed_item(bs, outstate, littable, disttable) end end tdecode_dist_nextrabits = t - --for i=0,29 do debug('T4',i,t[i]) end end local dist_val = disttable:read(bs) local dist_base = tdecode_dist_base[dist_val] @@ -716,7 +626,6 @@ local function parse_compressed_item(bs, outstate, littable, disttable) local dist_extrabits = bs:read(dist_nextrabits) local dist = dist_base + dist_extrabits - --debug('BACK', len, dist) for i=1,len do local pos = (outstate.window_pos - 1 - dist) % 32768 + 1 -- 32K output(outstate, assert(outstate.window[pos], 'invalid distance')) @@ -735,17 +644,12 @@ local function parse_block(bs, outstate) local BTYPE_DYNAMIC_HUFFMAN = 2 local BTYPE_RESERVED_ = 3 - if DEBUG then - debug('bfinal=', bfinal) - debug('btype=', btype) - end - if btype == BTYPE_NO_COMPRESSION then bs:read(bs:nbits_left_in_byte()) local len = bs:read(16) local nlen_ = noeof(bs:read(16)) - for i=1,len do + for _=1,len do local by = noeof(bs:read(8)) output(outstate, by) end @@ -804,10 +708,7 @@ function M.gunzip(t) local expected_crc32 = bs:read(32) local isize = bs:read(32) -- ignored - if DEBUG then - debug('crc32=', expected_crc32) - debug('isize=', isize) - end + if not disable_crc and data_crc32 then if data_crc32 ~= expected_crc32 then runtime_error('invalid compressed data--crc error') @@ -853,9 +754,7 @@ function M.inflate_zlib(t) local b1 = bs:read(8) local b0 = bs:read(8) local expected_adler32 = ((b3*256 + b2)*256 + b1)*256 + b0 - if DEBUG then - debug('alder32=', expected_adler32) - end + if not disable_crc then if data_adler32 ~= expected_adler32 then runtime_error('invalid compressed data--crc error') diff --git a/builder/apis/turtle.lua b/builder/apis/turtle.lua index 67df95f..2b15336 100644 --- a/builder/apis/turtle.lua +++ b/builder/apis/turtle.lua @@ -128,7 +128,7 @@ function supplyPage:enable(builder) self:sync() end) if not s then -- not sure why it's erroring :( - _G._debug(m) + _G._syslog(m) end end end) diff --git a/common/Follow.lua b/common/Follow.lua index 49b32b6..db63c07 100644 --- a/common/Follow.lua +++ b/common/Follow.lua @@ -120,7 +120,7 @@ function swarm:onRemove(member, status, message) member.snmp = nil end if not status then - _G._debug(message) + _G._syslog(message) end end diff --git a/common/debugMonitor.lua b/common/debugMonitor.lua index d5bce6f..cb6a96e 100644 --- a/common/debugMonitor.lua +++ b/common/debugMonitor.lua @@ -13,9 +13,9 @@ mon.clear() mon.setTextScale(.5) mon.setCursorPos(1, 1) -local oldDebug = _G._debug +local oldDebug = _G._syslog -_G._debug = function(...) +_G._syslog = function(...) local oldTerm = term.redirect(mon) Util.print(...) term.redirect(oldTerm) @@ -30,4 +30,4 @@ repeat end until e == 'terminate' -_G._debug = oldDebug +_G._syslog = oldDebug diff --git a/core/apis/chestAdapter.lua b/core/apis/chestAdapter.lua index b187b8c..39b4e2a 100644 --- a/core/apis/chestAdapter.lua +++ b/core/apis/chestAdapter.lua @@ -110,7 +110,7 @@ function ChestAdapter:listItems(throttle) return items end else - _debug(m) + _G._syslog(m) end end diff --git a/core/apis/chestAdapter18.lua b/core/apis/chestAdapter18.lua index d23f012..6176c5c 100644 --- a/core/apis/chestAdapter18.lua +++ b/core/apis/chestAdapter18.lua @@ -42,7 +42,6 @@ function ChestAdapter:getItemDetails(index, item) if self.getItemMeta then local s, detail = pcall(self.getItemMeta, index) if not s or not detail or detail.name ~= item.name then - -- debug({ s, detail }) return end return detail diff --git a/core/apis/meAdapter.lua b/core/apis/meAdapter.lua index 5240d2f..0263752 100644 --- a/core/apis/meAdapter.lua +++ b/core/apis/meAdapter.lua @@ -102,7 +102,7 @@ function MEAdapter:refresh() itemDB:flush() if not s and m then - _debug(m) + _G._syslog(m) end if s and not failed and hasItems and self.items and not Util.empty(self.items) then diff --git a/core/apis/refinedAdapter.lua b/core/apis/refinedAdapter.lua index 483549e..5c8a1b2 100644 --- a/core/apis/refinedAdapter.lua +++ b/core/apis/refinedAdapter.lua @@ -70,7 +70,7 @@ function RefinedAdapter:listItems(throttle) end) if not s and m then - _debug(m) + _G._syslog(m) end itemDB:flush() diff --git a/farms/apis/craft.lua b/farms/apis/craft.lua index 40f5d32..71108e7 100644 --- a/farms/apis/craft.lua +++ b/farms/apis/craft.lua @@ -71,7 +71,7 @@ local function turtleCraft(recipe, qty, inventoryAdapter) inventoryAdapter:provide(item, provideQty, k) if turtle.getItemCount(k) == 0 then -- ~= qty then -- FIX: ingredients cannot be stacked ---debug('failed ' .. v .. ' - ' .. provideQty) +--_syslog('failed ' .. v .. ' - ' .. provideQty) return false end end diff --git a/ignore/shapes.lua b/ignore/shapes.lua index 53248d5..74751d2 100644 --- a/ignore/shapes.lua +++ b/ignore/shapes.lua @@ -88,7 +88,6 @@ function page:runFunction(id, script) local fn, msg = loadstring(script, 'script') if not fn then self.notification:error('Error in script') - --debug(msg) return end diff --git a/milo/MiloLocal.lua b/milo/MiloLocal.lua index f276135..8ac9445 100644 --- a/milo/MiloLocal.lua +++ b/milo/MiloLocal.lua @@ -120,10 +120,10 @@ table.sort(context.tasks, function(a, b) return a.priority < b.priority end) -_G._debug('Tasks\n-----') +_G._syslog('Tasks\n-----') for _, task in ipairs(context.tasks) do task.execTime = 0 - _G._debug('%d: %s', task.priority, task.name) + _G._syslog('%d: %s', task.priority, task.name) end Milo:clearGrid() @@ -139,8 +139,8 @@ Event.on({ 'milo_cycle', 'milo_queue' }, function(e) for _, entry in pairs(queue) do local s, m = pcall(entry.callback, entry.request) if not s and m then - _G._debug('callback crashed') - _G._debug(m) + _G._syslog('callback crashed') + _G._syslog(m) end end end @@ -154,8 +154,8 @@ Event.on({ 'milo_cycle', 'milo_queue' }, function(e) local timer = Util.timer() local s, m = pcall(function() task:cycle(context) end) if not s and m then - _G._debug(task.name .. ' crashed') - _G._debug(m) + _G._syslog(task.name .. ' crashed') + _G._syslog(m) end task.execTime = task.execTime + timer() end @@ -182,7 +182,7 @@ cycleHandle = Event.onInterval(5, function() Event.trigger('milo_cycle') if context.taskCounter > 0 then --local average = context.taskTimer / context.taskCounter - --_debug('Interval: ' .. math.max(5, 2 + average * 3)) + --_syslog('Interval: ' .. math.max(5, 2 + average * 3)) --cycleHandle.updateInterval(math.max(5, 2 + average * 3)) end end) @@ -208,8 +208,8 @@ os.queueEvent( context.storage:isOnline() and 'storage_online' or 'storage_offline', context.storage:isOnline()) -local oldDebug = _G._debug -_G._debug = function(...) +local oldDebug = _G._syslog +_G._syslog = function(...) for _,v in pairs(context.loggers) do v(...) end @@ -220,5 +220,5 @@ local s, m = pcall(function() UI:pullEvents() end) -_G._debug = oldDebug +_G._syslog = oldDebug if not s then error(m) end diff --git a/milo/apis/craft2.lua b/milo/apis/craft2.lua index d3ddabd..06c2403 100644 --- a/milo/apis/craft2.lua +++ b/milo/apis/craft2.lua @@ -148,7 +148,7 @@ local function turtleCraft(recipe, storage, request, count) request.status = 'rescan needed ?' request.statusCode = Craft.STATUS_ERROR failed = true - _debug('failed to export: ' .. item.name) + _G._syslog('failed to export: ' .. item.name) end end) end @@ -165,8 +165,8 @@ local function turtleCraft(recipe, storage, request, count) local l = storage.turtleInventory.adapter.list() local crafted = l[1] if recipe.result ~= itemDB:makeKey(crafted) then - _debug('expected: ' .. recipe.result) - _debug('got: ' .. itemDB:makeKey(crafted)) + _G._syslog('expected: ' .. recipe.result) + _G._syslog('got: ' .. itemDB:makeKey(crafted)) request.aborted = true request.status = 'Failed to craft: ' .. recipe.result request.statusCode = Craft.STATUS_ERROR @@ -176,7 +176,7 @@ local function turtleCraft(recipe, storage, request, count) request.statusCode = Craft.STATUS_SUCCESS end else - _debug('just failed') + _G._syslog('just failed') request.status = 'Failed to craft' request.statusCode = Craft.STATUS_ERROR end diff --git a/milo/apis/massAdapter.lua b/milo/apis/massAdapter.lua index dbea78f..62e5208 100644 --- a/milo/apis/massAdapter.lua +++ b/milo/apis/massAdapter.lua @@ -44,7 +44,7 @@ function Adapter:init(args) end function self.pullItems(target, key, amount, slot) - _G._debug({target, key, amount, slot }) + _G._syslog({target, key, amount, slot }) return 0 end diff --git a/milo/apis/storage.lua b/milo/apis/storage.lua index 3844d05..9033977 100644 --- a/milo/apis/storage.lua +++ b/milo/apis/storage.lua @@ -66,7 +66,7 @@ function Storage:init() end Event.on({ 'device_attach', 'device_detach' }, function(e, dev) -_G._debug('%s: %s', e, tostring(dev)) +_G._syslog('%s: %s', e, tostring(dev)) self:initStorage() end) Event.onInterval(60, function() @@ -87,11 +87,11 @@ function Storage:showStorage() end end if #t > 0 then - _G._debug('Adapter:') + _G._syslog('Adapter:') for _, k in pairs(t) do - _G._debug(' offline: ' .. k) + _G._syslog(' offline: ' .. k) end - _G._debug('') + _G._syslog('') end end @@ -143,7 +143,7 @@ function Storage:initStorage() self.storageOnline = online -- TODO: if online, then list items os.queueEvent(self.storageOnline and 'storage_online' or 'storage_offline', online) - _G._debug('Storage: %s', self.storageOnline and 'online' or 'offline') + _G._syslog('Storage: %s', self.storageOnline and 'online' or 'offline') end self:listItems() @@ -229,7 +229,7 @@ end function Storage:refresh(throttle) self.dirty = true -_G._debug('STORAGE: Forcing full refresh') +_G._syslog('STORAGE: Forcing full refresh') for _, adapter in self:onlineAdapters() do adapter.dirty = true end @@ -280,7 +280,7 @@ function Storage:listItems(throttle) end end itemDB:flush() - _G._debug('STORAGE: refresh ' .. #t .. ' inventories in ' .. Util.round(timer(), 2)) + _G._syslog('STORAGE: refresh ' .. #t .. ' inventories in ' .. Util.round(timer(), 2)) self.dirty = false self.cache = cache @@ -300,7 +300,7 @@ function Storage:updateCache(adapter, item, count) if not entry then if count < 0 then - _G._debug('STORAGE: update cache - count < 0', 4) + _G._syslog('STORAGE: update cache - count < 0', 4) else entry = Util.shallowCopy(item) entry.count = count @@ -315,7 +315,7 @@ function Storage:updateCache(adapter, item, count) end if not entry then - _G._debug('STORAGE: item missing details') + _G._syslog('STORAGE: item missing details') adapter.dirty = true self.dirty = true else @@ -401,7 +401,7 @@ local function rawExport(source, target, item, qty, slot) end) if not s and m then - _G._debug(m) + _G._syslog(m) end return total, m @@ -424,7 +424,7 @@ function Storage:export(target, slot, count, item) end if amount > 0 then - _G._debug('EXT: %s(%d): %s -> %s%s in %s', + _G._syslog('EXT: %s(%d): %s -> %s%s in %s', item.displayName or item.name, amount, self:_sn(adapter.name), self:_sn(target.name), slot and string.format('[%d]', slot) or '[*]', Util.round(timer(), 2)) end @@ -443,7 +443,7 @@ function Storage:export(target, slot, count, item) end end - _G._debug('STORAGE warning: %s(%d): %s%s %s failed to export', + _G._syslog('STORAGE warning: %s(%d): %s%s %s failed to export', item.displayName or item.name, count, self:_sn(target.name), slot and string.format('[%d]', slot) or '[*]', key) @@ -460,15 +460,15 @@ local function rawInsert(source, target, slot, qty) local s, m = pcall(function() if isValidTransfer(source, target.name) then ---_debug('pull %s %s %d %d', source.name, target.name, slot, qty) +--_syslog('pull %s %s %d %d', source.name, target.name, slot, qty) count = source.pullItems(target.name, slot, qty) else ---_debug('push %s %s', target.name, source.name) +--_syslog('push %s %s', target.name, source.name) count = target.pushItems(source.name, slot, qty) end end) if not s and m then - _G._debug(m) + _G._syslog(m) end if count > 0 then @@ -510,7 +510,7 @@ function Storage:import(source, slot, count, item) if amount > 0 then self:updateCache(adapter, item, amount) - _G._debug('INS: %s(%d): %s[%d] -> %s in %s', + _G._syslog('INS: %s(%d): %s[%d] -> %s in %s', item.displayName or item.name, amount, self:_sn(source.name), slot, self:_sn(adapter.name), Util.round(timer(), 2)) @@ -557,7 +557,7 @@ function Storage:import(source, slot, count, item) end if count ~= 0 then - _G._debug('STORAGE warning: %s(%d): %s -> INSERT failed', + _G._syslog('STORAGE warning: %s(%d): %s -> INSERT failed', item.displayName or item.name, count, self:_sn(source.name)) end @@ -579,17 +579,17 @@ function Storage:trash(source, slot, count, item) amount = target.adapter.pullItems(source.name, slot, count) end - _G._debug('TRA: %s(%d): %s%s -> %s in %s', + _G._syslog('TRA: %s(%d): %s%s -> %s in %s', item.displayName or item.name, amount, self:_sn(source.name), slot and string.format('[%d]', slot) or '[*]', self:_sn(target.name), Util.round(timer(), 2)) end) if not s and m then - _G._debug(m) + _G._syslog(m) end end if amount ~= count then - _G._debug('STORAGE warning: %s(%d): %s -> TRASH failed', + _G._syslog('STORAGE warning: %s(%d): %s -> TRASH failed', item.displayName or item.name, count - amount, self:_sn(source.name)) end diff --git a/milo/apis/taskRunner.lua b/milo/apis/taskRunner.lua index e9e367f..2a4dd5b 100644 --- a/milo/apis/taskRunner.lua +++ b/milo/apis/taskRunner.lua @@ -68,7 +68,7 @@ function TaskRunner:run() end function TaskRunner:onError(msg) - _G._debug(msg.errorMsg .. msg) + _G._syslog(msg.errorMsg .. msg) end return TaskRunner diff --git a/milo/plugins/backupView.lua b/milo/plugins/backupView.lua index 71899df..7c75f64 100644 --- a/milo/plugins/backupView.lua +++ b/milo/plugins/backupView.lua @@ -82,7 +82,7 @@ local function backupNode(node) } local s, m = pcall(function() if not node.adapter.isDiskPresent() then - _G._debug('BACKUP error: No media present') + _G._syslog('BACKUP error: No media present') else local dir = node.adapter.getMountPath() for _, v in pairs(files) do @@ -91,7 +91,7 @@ local function backupNode(node) end end) if not s and m then - _G._debug('BACKUP error:' .. m) + _G._syslog('BACKUP error:' .. m) end end @@ -105,7 +105,7 @@ function BackupTask:cycle() for node in context.storage:filterActive('backup') do if not drives[node.name] then drives[node.name] = Event.onInterval(DAY, function() - _G._debug('BACKUP: started') + _G._syslog('BACKUP: started') if node.adapter and node.adapter.online then backupNode(node) end diff --git a/milo/plugins/importTask.lua b/milo/plugins/importTask.lua index 6b868d3..f7ac84c 100644 --- a/milo/plugins/importTask.lua +++ b/milo/plugins/importTask.lua @@ -75,7 +75,7 @@ function ImportTask:cycle(context) end function tasks:onError(msg) - _G._debug('IMPORT error: ' .. msg) + _G._syslog('IMPORT error: ' .. msg) end tasks:run() end diff --git a/milo/plugins/refreshTask.lua b/milo/plugins/refreshTask.lua index 7335e96..c1316dd 100644 --- a/milo/plugins/refreshTask.lua +++ b/milo/plugins/refreshTask.lua @@ -11,7 +11,7 @@ function RefreshTask:cycle(context) for node, adapter in context.storage:onlineAdapters() do if node.refreshInterval then if not adapter.lastRefresh or adapter.lastRefresh + node.refreshInterval < now then - _G._debug('REFRESHER: ' .. (node.displayName or node.name)) + _G._syslog('REFRESHER: ' .. (node.displayName or node.name)) context.storage.dirty = true adapter.dirty = true adapter.lastRefresh = now diff --git a/milo/plugins/remote.lua b/milo/plugins/remote.lua index 70593c8..4fe0e13 100644 --- a/milo/plugins/remote.lua +++ b/milo/plugins/remote.lua @@ -13,7 +13,7 @@ local function getNameSafe(v) name = v.getName() end) if not s then - _G._debug(m) + _G._syslog(m) end return name end @@ -35,7 +35,7 @@ local function compactList(list) end local function client(socket) - _G._debug('REMOTE: connection from ' .. socket.dhost) + _G._syslog('REMOTE: connection from ' .. socket.dhost) local user = socket:read(2) if not user then @@ -44,7 +44,7 @@ local function client(socket) local manipulator = getManipulatorForUser(user) if not manipulator then - _G._debug('REMOTE: Manipulator with introspection module bound with user not found. Closing connection.') + _G._syslog('REMOTE: Manipulator with introspection module bound with user not found. Closing connection.') socket:write({ msg = 'Manipulator not found' }) @@ -52,7 +52,7 @@ local function client(socket) return end - _G._debug('REMOTE: all good') + _G._syslog('REMOTE: all good') socket:write({ data = 'ok', }) @@ -166,7 +166,7 @@ local function client(socket) end until not socket.connected - _G._debug('REMOTE: disconnected from ' .. socket.dhost) + _G._syslog('REMOTE: disconnected from ' .. socket.dhost) end local handler @@ -174,7 +174,7 @@ local handler local function listen() if device.wireless_modem then handler = Event.addRoutine(function() - _G._debug('REMOTE: listening on port 4242') + _G._syslog('REMOTE: listening on port 4242') while true do local socket = Socket.server(4242) Event.addRoutine(function() @@ -191,7 +191,7 @@ Event.on({ 'device_attach', 'device_detach' }, function(_, name) if handler then handler:terminate() handler = nil - _G._debug('REMOTE: wireless modem disconnected') + _G._syslog('REMOTE: wireless modem disconnected') else listen() end diff --git a/milo/plugins/remote/deposit.lua b/milo/plugins/remote/deposit.lua index 4a49e6a..934aa92 100644 --- a/milo/plugins/remote/deposit.lua +++ b/milo/plugins/remote/deposit.lua @@ -36,7 +36,7 @@ Event.addRoutine(function() end end) if not s and m then - _G._debug(m) + _G._syslog(m) end end end diff --git a/milo/plugins/remote/feeder.lua b/milo/plugins/remote/feeder.lua index ef6a2bd..7d56af5 100644 --- a/milo/plugins/remote/feeder.lua +++ b/milo/plugins/remote/feeder.lua @@ -92,7 +92,7 @@ Event.onInterval(5, function() end end) if not s and m then - _G._debug(m) + _G._syslog(m) end end) diff --git a/miners/scanningMiner.lua b/miners/scanningMiner.lua index 965cd2b..26fe1aa 100644 --- a/miners/scanningMiner.lua +++ b/miners/scanningMiner.lua @@ -590,7 +590,7 @@ Event.addRoutine(function() { x = mining.x, y = 0, z = mining.z } ) - _G._debug({ distance = distance, maxDistance = maxDistance }) + _G._syslog({ distance = distance, maxDistance = maxDistance }) if distance > maxDistance + 16 then term.clear() diff --git a/neural/apis/interface.lua b/neural/apis/interface.lua index e049404..083b678 100644 --- a/neural/apis/interface.lua +++ b/neural/apis/interface.lua @@ -46,20 +46,19 @@ function Neural.launchTo(pt, strength) Neural.launch(yaw, 225, strength or 1) end -function Neural.walkTo(pt, speed) - Neural.walk(pt.x, pt.y, pt.z, speed) - os.sleep(1) - repeat until not Neural.isWalking() -end +function Neural.walkTo(pt, speed, radius) + local x, z = pt.x, pt.z + if radius then + local angle = math.atan2(pt.x, pt.z) + x = pt.x - ((radius or 1) * math.sin(angle)) + z = pt.z - ((radius or 1) * math.cos(angle)) + end -function Neural.walkAgainst(pt, radius, speed) - local angle = math.atan2(pt.x, pt.z) - local x = pt.x - ((radius or 1) * math.sin(angle)) - local z = pt.z - ((radius or 1) * math.cos(angle)) - - Neural.walk(x, 0, z, speed) - os.sleep(1) - repeat until not Neural.isWalking() + if Neural.walk(x, pt.y, z, speed) then + os.sleep(1) + repeat until not Neural.isWalking() + return true + end end -- flatten equipment functions @@ -118,9 +117,9 @@ function Neural.reload() }) end -function Neural.testWalk() - local e = Neural.getMetaByName('kepler155c') - Neural.walkAgainst(e) +function Neural.testWalk(name, speed, radius) + local e = Neural.getMetaByName(name) + Neural.walkTo(e, speed, radius) end return Neural.reload() diff --git a/neural/mobPickup.lua b/neural/mobPickup.lua index 7af0f37..75a4c6b 100644 --- a/neural/mobPickup.lua +++ b/neural/mobPickup.lua @@ -20,14 +20,11 @@ neural.assertModules({ local function dropOff() print('dropping') - local blocks = neural.scan() - local b = Util.find(blocks, 'name', 'minecraft:hopper') - + local b = Util.find(neural.scan(), 'name', 'minecraft:hopper') if b then - neural.walkTo({ x = b.x, y = 0, z = b.z }) + neural.walkTo({ x = b.x, y = 0, z = b.z }, 2) - blocks = neural.scan() - b = Util.find(blocks, 'name', 'minecraft:hopper') + b = Util.find(neural.scan(), 'name', 'minecraft:hopper') if b and math.abs(b.x) < 1 and math.abs(b.z) < 1 then print('dropped') neural.getEquipment().drop(1) @@ -40,7 +37,7 @@ end local function pickup(id) local b = neural.getMetaByID(id) if b then - neural.walkTo(b) + neural.walkTo(b, 2) local amount = neural.getEquipment().suck() print('sucked: ' .. amount) @@ -53,8 +50,7 @@ end while true do local sensed = Util.reduce(neural.sense(), function(acc, s) - s.y = Util.round(s.y) - if s.y == 0 and s.name == 'Item' then + if Util.round(s.y) == 0 and s.name == 'Item' then acc[s.id] = s end return acc diff --git a/neural/mobRancher.lua b/neural/mobRancher.lua index ee990af..104f4e8 100644 --- a/neural/mobRancher.lua +++ b/neural/mobRancher.lua @@ -9,7 +9,7 @@ local Util = require('util') local os = _G.os -local BREEDING = 'Cow' +local BREEDING = 'Cow' local WALK_SPEED = 1.5 local MAX_GROWN = 12 @@ -54,7 +54,7 @@ local function breed(entity) entity.lastFed = os.clock() fed[entity.id] = entity - neural.walkAgainst(entity, 1, WALK_SPEED) + neural.walkTo(entity, WALK_SPEED, 1) entity = neural.getMetaByID(entity.id) if entity then neural.lookAt(entity) @@ -65,7 +65,7 @@ end local function kill(entity) print('killing') - neural.walkAgainst(entity, 2.5, WALK_SPEED) + neural.walkTo(entity, WALK_SPEED, 2.5) entity = neural.getMetaByID(entity.id) if entity then neural.lookAt(entity) diff --git a/neural/rabbitRancher.lua b/neural/rabbitRancher.lua new file mode 100644 index 0000000..712f5dd --- /dev/null +++ b/neural/rabbitRancher.lua @@ -0,0 +1,171 @@ +--[[ + Breed rabbits with a rabbit. +]] + +local neural = require('neural.interface') +local Point = require('point') +local Sound = require('sound') +local Util = require('util') + +local os = _G.os + +local BREEDING = 'Rabbit' +local WALK_SPEED = 2 +local MAX_GROWN = 18 + +neural.assertModules({ + 'plethora:sensor', + 'plethora:scanner', + 'plethora:laser', + 'plethora:kinetic', + 'plethora:introspection', +}) + +local ID = neural.getID() +local fed = { } + +local function resupply() + local slot = neural.getEquipment().list()[1] + if slot and slot.count > 32 then + return + end + print('resupplying') + + local dispenser = Util.find(neural.scan(), 'name', 'minecraft:wooden_pressure_plate') + if dispenser then + if math.abs(dispenser.x) > 1 or math.abs(dispenser.z) > 1 then + neural.walkTo({ x = dispenser.x, y = 0, z = dispenser.z }, WALK_SPEED) + end + neural.lookAt(dispenser) + neural.getEquipment().suck(1, 64) + end +end + +local function breed(entity) + print('breeding') + entity.lastFed = os.clock() + fed[entity.id] = entity + + neural.walkTo(entity, WALK_SPEED, 1) + entity = neural.getMetaByID(entity.id) + if entity and not entity.isChild then + neural.lookAt(entity) + neural.use(1) + os.sleep(.1) + end +end + +local function kill(entity) + print('killing') + neural.walkTo(entity, WALK_SPEED, 2.5) + entity = neural.getMetaByID(entity.id) + if entity and not entity.isChild then + neural.lookAt(entity) + neural.fireAt({ x = entity.x, y = 0, z = entity.z }) + Sound.play('entity.firework.launch') + os.sleep(.2) + end +end + +local function getEntities() + return Util.filter(neural.sense(), function(entity) + if entity.name == BREEDING and entity.y > -.5 and entity.id ~= ID then + return true + end + end) +end + +local function getHungry(entities) + for _,v in pairs(entities) do + if not fed[v.id] or os.clock() - fed[v.id].lastFed > 90 then + return v + end + end +end + +local function randomEntity(entities) + local r = math.random(1, Util.size(entities)) + local i = 1 + for _, v in pairs(entities) do + i = i + 1 + if i > r then + return v + end + end +end + +local function dropOff() + print('dropping') + + if neural.getEquipment().list()[2] then + local b = Util.find(neural.scan(), 'name', 'minecraft:hopper') + if b then + neural.walkTo({ x = b.x, y = 0, z = b.z }, 2) + + b = Util.find(neural.scan(), 'name', 'minecraft:hopper') + if b and math.abs(b.x) < 1 and math.abs(b.z) < 1 then + print('dropped') + neural.getEquipment().drop(2) + end + end + end +end + +local function pickup(id) + local b = neural.getMetaByID(id) + if b then + neural.walkTo(b, 2) + + local main = neural.getEquipment().list()[1] + local amount = neural.getEquipment().suck(not main and 2 or nil) + print('sucked: ' .. amount) + if amount > 0 then + Sound.play('entity.item.pickup') + return true + end + end +end + +local function drops() + local sensed = Util.reduce(neural.sense(), function(acc, s) + if Util.round(s.y) == 0 and s.name == 'Item' then + acc[s.id] = s + end + return acc + end, { }) + + local pt = { x = 0, y = 0, z = 0 } + while true do + local b = Point.closest(pt, sensed) + if not b then + break + end + sensed[b.id] = nil + + if pickup(b.id) then + pt = b + else + dropOff() + break + end + end +end + +while true do + resupply() + + local entities = getEntities() + + if Util.size(entities) > MAX_GROWN then + kill(randomEntity(entities)) + else + local entity = getHungry(entities) + if entity then + breed(entity) + else + print('sleeping') + os.sleep(5) + end + drops() + end +end \ No newline at end of file diff --git a/storage/Crafter.lua b/storage/Crafter.lua index 9e6eeaf..ea44de5 100644 --- a/storage/Crafter.lua +++ b/storage/Crafter.lua @@ -294,7 +294,6 @@ local function craftItem(ikey, item, items, machineStatus) local ingredient = itemDB:get(key) -- local c = item.craftable * qty -- while c > 0 do ---debug(key) inventoryAdapter:provide(ingredient, maxCount * qty, slot) if turtle.getItemCount(slot) ~= maxCount * qty then item.status = 'Extract failed: ' .. (ingredient.displayName or itemDB:getName(ingredient)) diff --git a/storage/apis/craft.lua b/storage/apis/craft.lua index 9adef76..388b0bc 100644 --- a/storage/apis/craft.lua +++ b/storage/apis/craft.lua @@ -71,7 +71,7 @@ local function turtleCraft(recipe, qty, inventoryAdapter) inventoryAdapter:provide(item, provideQty, k) if turtle.getItemCount(k) == 0 then -- ~= qty then -- FIX: ingredients cannot be stacked ---debug('failed ' .. v .. ' - ' .. provideQty) +--_G._syslog('failed ' .. v .. ' - ' .. provideQty) return false end end diff --git a/storage/chestManager.lua b/storage/chestManager.lua index 600727a..8b082d2 100644 --- a/storage/chestManager.lua +++ b/storage/chestManager.lua @@ -1208,8 +1208,8 @@ local function learnRecipe(page) end if not recipe then - _debug(results) - _debug(newRecipe) + _G._syslog(results) + _G._syslog(newRecipe) error('Failed - view system log') end @@ -1437,7 +1437,7 @@ listingPage:setFocus(listingPage.statusBar.filter) --[[ Event.on('modem_message', function(e, side, sport, dport, item) - debug({ e, side, sport, dport, item }) + _syslog({ e, side, sport, dport, item }) if dport == 205 and type(item) == 'table' then inventoryAdapter:provide( item, diff --git a/swshop/shopConfig.lua b/swshop/shopConfig.lua index 9bddc89..8afd0bc 100644 --- a/swshop/shopConfig.lua +++ b/swshop/shopConfig.lua @@ -22,7 +22,7 @@ local wizardPage = UI.WizardPage { [2] = UI.TextEntry { formLabel = 'Password', formKey = 'password', shadowText = 'password', - limit = 64, + limit = 256, required = true, help = 'Krist wallet password', }, diff --git a/swshop/w.lua b/swshop/w.lua index 1b33f4a..e6532b5 100644 --- a/swshop/w.lua +++ b/swshop/w.lua @@ -32,8 +32,6 @@ end local function findID(url) local found = gfind(url, idPatt) local id = tonumber(found[#found]:sub(found[#found]:find("%d+"))) - --_debug('id: ') - --_debug(id) return id end