Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
-- energyMonitor.lua -- Zeigt den Energieinhalt eines Speichers (rechts) auf einem Monitor (oben) an. -- Entwickelt für Advanced Computer (CC: Tweaked) -- Peripheriegeräte abrufen local battery = peripheral.wrap("right") local monitor = peripheral.wrap("top") if not battery then error("❌ Kein Energiespeicher rechts gefunden!") end if not monitor then error("❌ Kein Monitor oben gefunden!") end -- Monitor vorbereiten monitor.setTextScale(1) monitor.setBackgroundColor(colors.black) monitor.clear() monitor.setCursorPos(1,1) -- Funktion zum Zeichnen des Fortschrittsbalkens local function drawBar(x, y, width, percent) local filled = math.floor(width * percent) monitor.setCursorPos(x, y) monitor.setBackgroundColor(colors.green) monitor.write(string.rep(" ", filled)) monitor.setBackgroundColor(colors.gray) monitor.write(string.rep(" ", width - filled)) monitor.setBackgroundColor(colors.black) end -- Funktion, um Energie aus verschiedenen Mods zu lesen local function getEnergyData(periph) local stored, max = 0, 0 if periph.getEnergyStored and periph.getMaxEnergyStored then stored = periph.getEnergyStored() max = periph.getMaxEnergyStored() elseif periph.getEnergy and periph.getMaxEnergy then stored = periph.getEnergy() max = periph.getMaxEnergy() elseif periph.getStored and periph.getCapacity then stored = periph.getStored() max = periph.getCapacity() else error("⚠️ Unbekannte Energie-API – Block unterstützt keine Energieabfrage.") end return stored, max end -- Hauptschleife while true do monitor.clear() monitor.setCursorPos(1,1) monitor.setTextColor(colors.white) local ok, energyStored, energyCapacity = pcall(function() local s, m = getEnergyData(battery) return s, m end) if not ok then monitor.setTextColor(colors.red) monitor.write("Fehler beim Lesen der Energie!") sleep(2) else local percent = (energyCapacity > 0) and (energyStored / energyCapacity) or 0 local percentText = string.format("%.1f%%", percent * 100) monitor.setTextColor(colors.cyan) monitor.write("Energie-Speicher") monitor.setCursorPos(1,2) monitor.setTextColor(colors.white) monitor.write(string.format("%d / %d RF", energyStored, energyCapacity)) monitor.setCursorPos(1,3) drawBar(1, 3, 25, percent) monitor.setCursorPos(1,5) monitor.setTextColor(colors.yellow) monitor.write("Fuellstand: " .. percentText) end sleep(2) end
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)