Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Programa en el PC de las jarras
- -- es una modificación del diseño de Direwolf20
- rednet.open("right")
- local mon = peripheral.find("monitor")
- local cofre = peripheral.find("iron")
- local analiza = peripheral.find("tt_aspectanalyzer")
- local jarras = peripheral.getNames()
- local esen = {}
- local esencia = {}
- local cantEsencia = {}
- local esenciaActual
- local cantidadLlenado = 0
- -- Escanea los nombres de las esencias pillándolas del cofre
- -- y metiéndolas en el analizador
- -- mira la cantidad que hay
- -- esta función es de Direwolf20
- function nombreEsencia()
- local temp = {}
- local noAura
- for i = 1,49 do --loop de cofre
- if cofre.getStackInSlot(i) then
- cofre.pushItem("WEST",i,1,1)
- temp = analiza.getAspects()
- if temp[2] then
- if temp[2] == "auram" then
- noAura = temp[1]
- else
- noAura = temp[2]
- end
- else
- noAura = temp[1]
- end
- cofre.pullItem("WEST",1,1,i)
- esen[noAura] = i
- esencia[noAura]= 0
- --guarda el nombre de la esencia en esencia[] y le da valor 0
- cantEsencia[noAura] = cofre.getStackInSlot(i)["qty"]
- end
- end
- end
- function escaneaJarras()
- for i,j in ipairs(jarras) do
- if peripheral.getType(j) == "tt_aspectContainer" then
- jarAsp = peripheral.call(j,"getAspects")
- cuentaAsp = peripheral.call(j,"getAspectCount",jarAsp[1])
- if cuentaAsp > 0 then
- esencia[jarAsp[1]] = math.floor(cuentaAsp)
- end
- end
- end
- end
- function ordena(t)
- local keys = {}
- for k in pairs(t) do
- keys[#keys+1] = k
- end
- table.sort(keys)
- local i = 0
- return function()
- i = i+1
- if keys[i] then
- return keys[i], t[keys[i]]
- end
- end
- end
- function muestraEsencia()
- mon.clear()
- mon.setTextColor(colors.white)
- local x = 1
- local y = 1
- for nom,cant in ordena(esencia) do
- if cant<=20 then mon.setTextColor(colors.red) end
- if cant<40 and cant>20 then mon.setTextColor(colors.yellow) end
- if cant>=40 then mon.setTextColor(colors.green) end
- mon.setCursorPos(x,y)
- mon.write(nom)
- mon.setCursorPos(x+14,y)
- mon.write(tostring(cant))
- if y < 17 then
- y = y+1
- else
- y = 1
- x = x+17
- end
- end
- mon.setTextColor(colors.white)
- end
- function llenaJarras()
- for nomes,cantes in pairs(esencia) do
- esenciaActual = nomes
- cantidadLlenado = (64-cantes)
- if cantidadLlenado > (cantEsencia[esenciaActual]-1)*2 then
- cantidadLlenado = (cantEsencia[esenciaActual]-1)*2
- end
- --deja una esencia en el cofre y establece la cantidad de esencias para el llenado
- if cantidadLlenado > 1 then
- if cantidadLlenado % 2 == 0 then --comprobamos si el resto al dividir entre 2 es cero
- cofre.pushItem("UP", esen[esenciaActual], cantidadLlenado/2)
- else --el resto no es cero por lo tanto cantidadLlenado no es 2,4,6,8,10,etc
- cantidadLlenado = cantidadLlenado + 1
- cofre.pushItem("UP", esen[esenciaActual], cantidadLlenado/2)--hacemos la division porque cada ethereal essence lleva 2 aspectos
- end
- end
- end
- muestraEsencia()
- end
- function escucha()
- local id,mensaje = rednet.receive()
- if mensaje == "info" then
- nombreEsencia()
- escaneaJarras()
- muestraEsencia()
- else
- nombreEsencia()
- escaneaJarras()
- llenaJarras()
- end
- end
- while true do
- escucha()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement