mirror of
https://github.com/kepler155c/opus
synced 2025-01-01 03:10:28 +00:00
cleanup + app changes
This commit is contained in:
parent
644fd0352f
commit
2fd2b552fc
@ -8,25 +8,20 @@ local PACKAGE_DIR = 'packages'
|
||||
local Packages = { }
|
||||
|
||||
function Packages:installed()
|
||||
self.cache = { }
|
||||
local list = { }
|
||||
|
||||
if fs.exists(PACKAGE_DIR) then
|
||||
for _, dir in pairs(fs.list(PACKAGE_DIR)) do
|
||||
local path = fs.combine(fs.combine(PACKAGE_DIR, dir), '.package')
|
||||
self.cache[dir] = Util.readTable(path)
|
||||
list[dir] = Util.readTable(path)
|
||||
end
|
||||
end
|
||||
|
||||
return self.cache
|
||||
return list
|
||||
end
|
||||
|
||||
function Packages:list()
|
||||
if self.packageList then
|
||||
return self.packageList
|
||||
end
|
||||
self.packageList = Util.readTable('usr/config/packages') or { }
|
||||
|
||||
return self.packageList
|
||||
return Util.readTable('usr/config/packages') or { }
|
||||
end
|
||||
|
||||
function Packages:isInstalled(package)
|
||||
|
@ -195,7 +195,7 @@ UI.Icon.defaults = {
|
||||
function UI.Icon:eventHandler(event)
|
||||
if event.type == 'mouse_click' then
|
||||
self:setFocus(self.button)
|
||||
self:emit({ type = self.button.event, button = self.button })
|
||||
--self:emit({ type = self.button.event, button = self.button })
|
||||
return true
|
||||
elseif event.type == 'mouse_doubleclick' then
|
||||
self:emit({ type = self.button.event, button = self.button })
|
||||
@ -403,9 +403,13 @@ function page:eventHandler(event)
|
||||
elseif event.type == 'delete' then
|
||||
local focused = page:getFocused()
|
||||
if focused.app then
|
||||
focused.app.disabled = true
|
||||
local filename = focused.app.filename or fs.combine(REGISTRY_DIR, focused.app.key)
|
||||
Util.writeTable(filename, focused.app)
|
||||
if focused.app.filename then
|
||||
fs.delete(focused.app.filename)
|
||||
else
|
||||
focused.app.disabled = true
|
||||
local filename = focused.app.filename or fs.combine(REGISTRY_DIR, focused.app.key)
|
||||
Util.writeTable(filename, focused.app)
|
||||
end
|
||||
loadApplications()
|
||||
page:refresh()
|
||||
page:draw()
|
||||
|
@ -103,11 +103,6 @@
|
||||
\030 \031f\030f\0310\136\140\140\030 ",
|
||||
run = "https://gist.github.com/LDDestroier/c7528d95bc0103545c2a/raw",
|
||||
},
|
||||
[ "785af2a4ad3c4ee912623c6e0b6d4299ea305bf6" ] = {
|
||||
title = "Pipes",
|
||||
category = "Games",
|
||||
run = "https://pastebin.com/raw/skcs9x1s",
|
||||
},
|
||||
[ "53a5d150062b1e03206b9e15854b81060e3c7552" ] = {
|
||||
title = "Minesweeper",
|
||||
category = "Games",
|
||||
|
@ -19,7 +19,6 @@ local state = { }
|
||||
turtle.pathfind = Pathing.pathfind
|
||||
turtle.point = { x = 0, y = 0, z = 0, heading = 0 }
|
||||
|
||||
function turtle.getPoint() return turtle.point end
|
||||
function turtle.getState() return state end
|
||||
function turtle.isAborted() return state.abort end
|
||||
function turtle.getStatus() return state.status end
|
||||
@ -34,6 +33,7 @@ local function _defaultMove(action)
|
||||
return true
|
||||
end
|
||||
|
||||
function turtle.getPoint() return turtle.point end
|
||||
function turtle.setPoint(pt, isGPS)
|
||||
turtle.point.x = pt.x
|
||||
turtle.point.y = pt.y
|
||||
@ -77,6 +77,8 @@ 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
|
||||
@ -147,11 +149,9 @@ function turtle.getHeadingInfo(heading)
|
||||
return headings[heading]
|
||||
end
|
||||
|
||||
-- hackish way to support unlimited fuel
|
||||
if type(turtle.getFuelLevel()) ~= 'number' then
|
||||
function turtle.getFuelLevel()
|
||||
return 10000000
|
||||
end
|
||||
function turtle.isTurtleAtSide(side)
|
||||
local sideType = peripheral.getType(side)
|
||||
return sideType and sideType == 'turtle'
|
||||
end
|
||||
|
||||
-- [[ Policies ]] --
|
||||
@ -228,7 +228,7 @@ local function _place(action, indexOrId)
|
||||
end
|
||||
end
|
||||
|
||||
if slot and slot.qty == 0 then
|
||||
if slot and slot.count == 0 then
|
||||
return false, 'No items to place'
|
||||
end
|
||||
|
||||
@ -321,18 +321,7 @@ function turtle.setMoveCallback(cb) state.moveCallback = cb end
|
||||
function turtle.clearMoveCallback() state.moveCallback = noop end
|
||||
function turtle.getMoveCallback() return state.moveCallback end
|
||||
|
||||
function turtle.refuel(qtyOrName, qty)
|
||||
if not qtyOrName or type(qtyOrName) == 'number' then
|
||||
return turtle.native.refuel(qtyOrName or 64)
|
||||
end
|
||||
return inventoryAction(turtle.native.refuel, qtyOrName, qty or 64)
|
||||
end
|
||||
|
||||
function turtle.isTurtleAtSide(side)
|
||||
local sideType = peripheral.getType(side)
|
||||
return sideType and sideType == 'turtle'
|
||||
end
|
||||
|
||||
-- convenience method for setting multiple values
|
||||
function turtle.set(args)
|
||||
for k,v in pairs(args) do
|
||||
|
||||
@ -363,6 +352,22 @@ function turtle.set(args)
|
||||
end
|
||||
end
|
||||
|
||||
-- [[ Fuel ]] --
|
||||
if type(turtle.getFuelLevel()) ~= 'number' then
|
||||
-- Support unlimited fuel
|
||||
function turtle.getFuelLevel()
|
||||
return 10000000
|
||||
end
|
||||
end
|
||||
|
||||
-- override to optionally specify a fuel
|
||||
function turtle.refuel(qtyOrName, qty)
|
||||
if not qtyOrName or type(qtyOrName) == 'number' then
|
||||
return turtle.native.refuel(qtyOrName or 64)
|
||||
end
|
||||
return inventoryAction(turtle.native.refuel, qtyOrName, qty or 64)
|
||||
end
|
||||
|
||||
-- [[ Heading ]] --
|
||||
function turtle.getHeading()
|
||||
return turtle.point.heading
|
||||
@ -740,9 +745,9 @@ function turtle.getSlot(indexOrId, slots)
|
||||
slots = slots or turtle.getInventory()
|
||||
local _,c = string.gsub(indexOrId, ':', '')
|
||||
if c == 2 then -- combined id and dmg .. ie. minecraft:coal:0
|
||||
return Util.find(slots, 'iddmg', indexOrId)
|
||||
return Util.find(slots, 'key', indexOrId)
|
||||
end
|
||||
return Util.find(slots, 'id', indexOrId)
|
||||
return Util.find(slots, 'name', indexOrId)
|
||||
end
|
||||
|
||||
local detail = turtle.getItemDetail(indexOrId)
|
||||
@ -759,7 +764,6 @@ function turtle.getSlot(indexOrId, slots)
|
||||
qty = detail.count,
|
||||
dmg = detail.damage,
|
||||
id = detail.name,
|
||||
iddmg = detail.name .. ':' .. detail.damage,
|
||||
}
|
||||
end
|
||||
|
||||
@ -798,7 +802,7 @@ function turtle.getSummedInventory()
|
||||
local slots = turtle.getFilledSlots()
|
||||
local t = { }
|
||||
for _,slot in pairs(slots) do
|
||||
local entry = t[slot.iddmg]
|
||||
local entry = t[slot.key]
|
||||
if not entry then
|
||||
entry = {
|
||||
count = 0,
|
||||
@ -810,9 +814,8 @@ function turtle.getSummedInventory()
|
||||
qty = 0,
|
||||
dmg = slot.dmg,
|
||||
id = slot.id,
|
||||
iddmg = slot.iddmg,
|
||||
}
|
||||
t[slot.iddmg] = entry
|
||||
t[slot.key] = entry
|
||||
end
|
||||
entry.qty = entry.qty + slot.qty
|
||||
entry.count = entry.qty
|
||||
@ -931,8 +934,8 @@ function turtle.getItemCount(idOrName)
|
||||
local slots = turtle.getFilledSlots()
|
||||
local count = 0
|
||||
for _,slot in pairs(slots) do
|
||||
if slot.iddmg == idOrName or slot.name == idOrName then
|
||||
count = count + slot.qty
|
||||
if slot.key == idOrName or slot.name == idOrName then
|
||||
count = count + slot.count
|
||||
end
|
||||
end
|
||||
return count
|
||||
@ -967,7 +970,7 @@ function turtle.unequip(side)
|
||||
return turtle.equip(side)
|
||||
end
|
||||
|
||||
-- [[ ]] --
|
||||
-- deprecate
|
||||
function turtle.run(fn, ...)
|
||||
local args = { ... }
|
||||
local s, m
|
||||
@ -1233,6 +1236,7 @@ function turtle.enableGPS(timeout)
|
||||
end
|
||||
end
|
||||
|
||||
-- deprecate
|
||||
function turtle.addFeatures(...)
|
||||
for _,feature in pairs({ ... }) do
|
||||
require('turtle.' .. feature)
|
||||
|
Loading…
Reference in New Issue
Block a user