mirror of
https://github.com/Kiritow/OpenComputerScripts.git
synced 2024-03-22 13:10:46 +08:00
Move files
This commit is contained in:
parent
a18770896f
commit
664ef63455
|
@ -1,101 +0,0 @@
|
|||
-- Storage Center and Auto Crafting
|
||||
-- Requires:
|
||||
-- Computer with wireless network card
|
||||
-- Robot with craft upgrade and inventory upgrade, wireless network card
|
||||
-- Transposer
|
||||
|
||||
require("libevent")
|
||||
require("util")
|
||||
local component=require("component")
|
||||
|
||||
local modem=component.list("modem")
|
||||
if(modem==nil) then
|
||||
error("Modem is required")
|
||||
else
|
||||
modem=component.proxy("modem")
|
||||
end
|
||||
|
||||
-- Config
|
||||
local craft_trans=proxy("transposer","")
|
||||
local craft_trans_side_in=sides.west
|
||||
local craft_trans_side_out=sides.east
|
||||
local craft_trans_side_interface=sides.south
|
||||
|
||||
-- End of Config
|
||||
|
||||
local craft_db={}
|
||||
|
||||
local function readCraftTable()
|
||||
local tb={}
|
||||
tb.input={}
|
||||
for i=1,3,1 do
|
||||
for j=1,3,1 do
|
||||
local p=craft_trans.getStackInSlot(sides.up,(i-1)*9+j)
|
||||
if(p~=nil) then
|
||||
table.insert(tb.input,{
|
||||
["i"]=i,
|
||||
["j"]=j,
|
||||
["name"]=p.name,
|
||||
["size"]=p.size})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local xp=craft_trans.getStackInSlot(sides.up,2*9+5)
|
||||
if(p~=nil) then
|
||||
tb.output=xp.name
|
||||
else
|
||||
return false,"No craft target found. Invalid Plan."
|
||||
end
|
||||
|
||||
return true,tb
|
||||
end
|
||||
|
||||
local function netRobotCraft()
|
||||
if(not modem.isOpen(2801)) then
|
||||
if(not modem.open(2801)) then
|
||||
return false,"Port can't be opened."
|
||||
end
|
||||
end
|
||||
|
||||
local bus=CreateEventBus()
|
||||
bus:listen("modem_message")
|
||||
local craft_started=false
|
||||
modem.broadcast(2802,"robotCraft")
|
||||
local e=bus:next(3) -- Wait for 3 second
|
||||
if(e~=nil) then
|
||||
if(e.data[1]=="craft_started") then
|
||||
craft_started=true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if(not craft_started) then
|
||||
return false,"Cannot tell robot to start craft"
|
||||
end
|
||||
|
||||
local e=bus:next()
|
||||
if(e.data[1]~="craft_finished") then
|
||||
return false,"Craft Failed"
|
||||
end
|
||||
end
|
||||
|
||||
local function doCraftOnce(craft_table)
|
||||
for k,v in pairs(craft_table) do
|
||||
transferFromBaseToInterface(v.name,v.size,(v.i-1)*9+j)
|
||||
end
|
||||
local ret,msg=netRobotCraft()
|
||||
if(not ret) then
|
||||
return false,"Craft Failed. " .. msg
|
||||
end
|
||||
end
|
||||
|
||||
local function craftOnce(name)
|
||||
for k,v in pairs(craft_tb) do
|
||||
if(v.output==name) then
|
||||
doCraftOnce(v.input)
|
||||
return
|
||||
end
|
||||
end
|
||||
error("Craft table not found")
|
||||
end
|
|
@ -1,14 +0,0 @@
|
|||
-- Auto Crafting Robot Client
|
||||
-- Requires:
|
||||
-- Craft upgrade and inventory upgrade
|
||||
-- Wireless network card
|
||||
|
||||
require("libevent")
|
||||
local component=require("component")
|
||||
local modem=component.list("modem")
|
||||
if(modem==nil) then
|
||||
error("Modem is required")
|
||||
else
|
||||
modem=component.proxy("modem")
|
||||
end
|
||||
|
|
@ -1,154 +0,0 @@
|
|||
-- Storage Manager
|
||||
-- Designed for survival mode playing
|
||||
|
||||
require("libevent")
|
||||
local component=require("component")
|
||||
local sides=require("sides")
|
||||
local term=require("term")
|
||||
|
||||
local gpu=component.proxy(component.list("gpu")())
|
||||
|
||||
local function fullScan()
|
||||
local device_gate=component.list("transposer")
|
||||
if(device_gate==nil) then return {} end
|
||||
local devices={}
|
||||
while true do
|
||||
local addr=device_gate()
|
||||
if(addr==nil) then break end
|
||||
table.insert(devices,addr)
|
||||
end
|
||||
|
||||
local allprog=(#devices)*4
|
||||
|
||||
local db={}
|
||||
local allsides={ sides.north, sides.east, sides.south, sides.west }
|
||||
|
||||
local done=0
|
||||
|
||||
for _,addr in pairs(devices) do
|
||||
local dev=component.proxy(addr)
|
||||
for _,cside in pairs(allsides) do
|
||||
local x=dev.getAllStacks(cside)
|
||||
local cnt=x.count()
|
||||
for i=1,cnt,1 do
|
||||
local t=x()
|
||||
if(t.name~=nil) then
|
||||
if(db[t.name]~=nil) then
|
||||
db[t.name]=db[t.name]+t.size
|
||||
else
|
||||
db[t.name]=t.size
|
||||
end
|
||||
end
|
||||
end
|
||||
done=done+1
|
||||
PushEvent("scan_progress",done/allprog)
|
||||
end
|
||||
end
|
||||
|
||||
return db
|
||||
end
|
||||
|
||||
local item_db={}
|
||||
|
||||
local function ui_clear()
|
||||
local w,h=gpu.getResolution()
|
||||
gpu.fill(1,1,w,h,' ')
|
||||
end
|
||||
|
||||
local function ui_show(page_id)
|
||||
local w,h=gpu.getResolution()
|
||||
gpu.fill(1,1,w,1,'=')
|
||||
gpu.set(5,1,"Storage Manager v0.1")
|
||||
gpu.fill(1,h,w,1,' ')
|
||||
gpu.set(1,h,"Status: Loading...")
|
||||
local item_to_skip=(page_id-1)*(h-2)
|
||||
local skipped=0
|
||||
local now=2
|
||||
for k,v in pairs(item_db) do
|
||||
if(skipped>=item_to_skip) then
|
||||
gpu.set(1,now,k .. " -- Count: " .. v)
|
||||
now=now+1
|
||||
if(now==h) then break end
|
||||
else
|
||||
skipped=skipped+1
|
||||
end
|
||||
end
|
||||
gpu.fill(1,h-3,w,1,' ')
|
||||
gpu.set(1,h-3,"<REFRESH>")
|
||||
gpu.fill(1,h-2,w,1,' ')
|
||||
gpu.set(1,h-2,"<PREV>")
|
||||
gpu.fill(1,h-1,w,1,' ')
|
||||
gpu.set(1,h-1,"<NEXT>")
|
||||
gpu.fill(1,h,w,1,' ')
|
||||
gpu.set(1,h,"Status: Ready. Page " .. page_id)
|
||||
end
|
||||
|
||||
local function ui_fullscan()
|
||||
ui_clear()
|
||||
gpu.set(1,1,"Please wait while full scanning...")
|
||||
local w,h=gpu.getResolution()
|
||||
|
||||
local id=AddEventListener("scan_progress",function(e)
|
||||
gpu.fill(1,2,w,1,' ')
|
||||
gpu.fill(1,2,e.data[1]*w,1,'=')
|
||||
gpu.set(1,2,"[" .. math.ceil(e.data[1]*100) .. "%>")
|
||||
end)
|
||||
|
||||
item_db=fullScan()
|
||||
RemoveEventListener(id)
|
||||
end
|
||||
|
||||
local current_page=1
|
||||
|
||||
local function ui_view()
|
||||
while true do
|
||||
local e=WaitEvent("touch")
|
||||
local w,h=gpu.getResolution()
|
||||
|
||||
if(e.y==h-3) then
|
||||
ui_fullscan()
|
||||
return
|
||||
end
|
||||
|
||||
if(e.y==h-2) then
|
||||
if(current_page>1) then
|
||||
current_page=current_page-1
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
if(e.y==h-1) then
|
||||
current_page=current_page+1
|
||||
return
|
||||
end
|
||||
if(e.y~=1 and e.y~=h) then
|
||||
-- Selected one row
|
||||
local count=1
|
||||
while true do
|
||||
term.setCursor(1,h)
|
||||
term.clearLine()
|
||||
io.write("Input number here:")
|
||||
term.setCursorBlink(true)
|
||||
count=io.read("n")
|
||||
if(count~=nil) then
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function ui_main()
|
||||
while true do
|
||||
ui_clear()
|
||||
ui_show(current_page)
|
||||
ui_view()
|
||||
end
|
||||
end
|
||||
|
||||
local function main()
|
||||
ui_fullscan()
|
||||
ui_main()
|
||||
end
|
||||
|
||||
main()
|
|
@ -1,7 +1,7 @@
|
|||
-- Teleport Calculator
|
||||
local function getEUStr(eu)
|
||||
if(eu<1000) then
|
||||
return '' .. math.ceil(eu)
|
||||
return string.format(
|
||||
elseif(eu<1000*1000) then
|
||||
return '' .. math.ceil(eu/1000) .. 'K,' .. getEUStr(eu%1000)
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue
Block a user