Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- detect_energy_level.lua
- -- Muestra el nivel de energía (FE) de un bloque detrás del ordenador
- local side = "back" -- bloque que contiene energía (detrás del ordenador)
- -- función para obtener energía actual y capacidad
- local function getEnergy(side)
- local methods = {
- {"getEnergyStored", "getEnergyCapacity"},
- {"getEnergy", "getMaxEnergy"},
- {"getEnergyStored", "getMaxEnergyStored"},
- {"getEnergy", "getEnergyCapacity"},
- {"getEnergyStats"} -- algunos mods devuelven una tabla {energy, capacity}
- }
- for _, pair in ipairs(methods) do
- local curMeth, capMeth = pair[1], pair[2]
- local ok1, cur = pcall(peripheral.call, side, curMeth)
- local ok2, cap = pcall(peripheral.call, side, capMeth)
- -- caso donde ambos devuelven números
- if ok1 and ok2 and type(cur) == "number" and type(cap) == "number" then
- return cur, cap
- end
- -- caso especial: devuelve una tabla con energy y capacity
- if ok1 and type(cur) == "table" and cur.energy and cur.capacity then
- return cur.energy, cur.capacity
- end
- end
- return nil, nil
- end
- -- bucle principal
- while true do
- term.clear()
- term.setCursorPos(1, 1)
- if not peripheral.isPresent(side) then
- print("No hay periférico en el lado: " .. side)
- else
- local energy, capacity = getEnergy(side)
- if energy and capacity then
- local percent = (energy / capacity) * 100
- print(("Energía: %d / %d FE (%.1f%%)"):format(energy, capacity, percent))
- else
- print("No se pudo leer energía del bloque en " .. side)
- print("Asegúrate de que el bloque expone su energía como periférico.")
- end
- end
- sleep(1)
- end
Advertisement
Add Comment
Please, Sign In to add comment