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
|
-- Teleport Calculator
|
||||||
local function getEUStr(eu)
|
local function getEUStr(eu)
|
||||||
if(eu<1000) then
|
if(eu<1000) then
|
||||||
return '' .. math.ceil(eu)
|
return string.format(
|
||||||
elseif(eu<1000*1000) then
|
elseif(eu<1000*1000) then
|
||||||
return '' .. math.ceil(eu/1000) .. 'K,' .. getEUStr(eu%1000)
|
return '' .. math.ceil(eu/1000) .. 'K,' .. getEUStr(eu%1000)
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue
Block a user