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
--MobFun V1.01 --written in 10/2025 by Kay Michaelsen -- --vardef -- monitor = {} monitor[1] = peripheral.wrap("monitor_36") aMoni = #monitor --gate = peripheral.wrap("advanced_crystal_interface_2") --trans = peripheral.wrap("transceiver_0") -- l = 0 m = 0 atext = "" ax = 0 dPage = 1 dMax = 0 gName = {} gLine = {} gStat = {} aMobs = 0 function MobsDefault(fLesen) gName[1] = "Spider" gLine[1] = colors.red gName[2] = "Skeleton" gLine[2] = colors.orange gName[3] = "Enderman" gLine[3] = colors.magenta gName[4] = "Wither Skeleton" gLine[4] = colors.blue gName[5] = "Zombie" gLine[5] = colors.lime gName[6] = "Creeper" gLine[6] = colors.lightBlue gName[7] = "Smasher" gLine[7] = colors.cyan aMobs = #gName MobsSchreiben(true) end function MobsLesen(fLesen) local fName = "mobsdef.dat" local vars = {} local line = "" datei = fs.open(fName, "r") if not (datei == nil) then local tableString = datei.read() while not(line == nil) do line = datei.read() if line == nil then break end tableString = tableString..line end datei.close() vars = textutils.unserialise(tableString) aMobs = vars.aMobs gName = vars.gName gLine = vars.gLine else print("Fehler: Datei nicht lesbar") end end function MobsSchreiben(fLesen) local fName="mobsdef.dat" local vars = {} vars.aMobs = aMobs vars.gName = gName vars.gLine = gLine local tableString = textutils.serialise(vars) datei = fs.open(fName, "w") datei.write(tableString) datei.close() end function Monitore(fLesen) for i = 1, aMoni do MonAufbau(monitor[i]) end end function UserCommand( xpos, ypos) local gNr = 0 print("UC" ,xpos ,ypos) if ypos == 1 then if (xpos<5) then --prev page if dPage > 1 then dPage = dPage -1 end elseif (xpos>7) and (xpos<12) then if dPage < dMax then dPage = dPage +1 end end elseif (ypos == 3) or (ypos == 6) or (ypos == 9) or (ypos == 12) or (ypos == 15) or (ypos == 18) or (ypos == 21) then if (xpos >= 37) and (xpos <= 45) then gNr = (dPage - 1) * 7 + ((ypos) / 3) if gStat[gNr] == true then gStat[gNr] = false else gStat[gNr] = true end setOutput(true) end end Monitore(true) end function startMonitors(fLesen) local i = 0 local fmoni = monitor[1] for i = 1, (aMoni) do if not (monitor[i] == nil) then fmoni = monitor[i] fmoni.setTextScale(0.5) fmoni.setBackgroundColor(colors.black) fmoni.clear() fmoni.setBackgroundColor(colors.red) fmoni.setTextColor(colors.white) fmoni.setCursorPos(2,2) fmoni.write(" Initialisiere Systeme ... ") end end sleep(2) end function MonAufbau(moni) local i = 0 local k = 0 local pr = 0 local py = 0 if not(moni == nil) then moni.setTextScale(0.5) moni.setBackgroundColor(colors.black) moni.clear() moni.setBackgroundColor(colors.blue) moni.setTextColor(colors.orange) moni.setCursorPos(15,1) moni.write(" *** Wuffelz Fun mit Mobs *** ") moni.setCursorPos(1,1) if dPage > 1 then moni.setBackgroundColor(colors.orange) moni.setTextColor(colors.black) else moni.setBackgroundColor(colors.black) moni.setTextColor(colors.orange) end moni.write(" << ") moni.setCursorPos(6,1) moni.setBackgroundColor(colors.black) moni.setTextColor(colors.orange) moni.write(string.format("%1d", dPage)) moni.setCursorPos(8,1) if dPage < dMax then moni.setBackgroundColor(colors.orange) moni.setTextColor(colors.black) else moni.setBackgroundColor(colors.black) moni.setTextColor(colors.orange) end moni.write(" >> ") for i = 1,7 do k = (i-1) * 3 + 1 moni.setBackgroundColor(colors.black) moni.setTextColor(colors.blue) py = k + 2 pr = ((dPage -1) * 7) + i if pr <= aMobs then moni.setCursorPos(1,py) moni.write(gName[pr]) moni.setCursorPos(25,(py)) if gStat[pr] == true then moni.setBackgroundColor(colors.black) moni.setTextColor(colors.orange) moni.write("active ->") moni.setCursorPos(37,(py)) moni.setBackgroundColor(colors.orange) moni.setTextColor(colors.blue) moni.write(" stop ") else moni.setBackgroundColor(colors.black) moni.setTextColor(colors.orange) moni.write("inactive ->") moni.setCursorPos(39,(py)) moni.setBackgroundColor(colors.orange) moni.setTextColor(colors.blue) moni.write(" start ") end end end end end function setOutput(lesen) local lauf = 0 local bund = 0 for lauf = 1, aMobs do if gStat[lauf] == true then bund = bund + gLine[lauf] end end redstone.setBundledOutput("bottom", (bund)) end --Main startMonitors(true) MobsLesen(true) if (aMobs < 1) then MobsDefault(true) end aMobs = #gName dMax = math.floor(aMobs / 7) +1 dPage = 1 print(aMobs, dMax) for z = 1, aMobs do gStat[z] = false end redstone.setBundledOutput("bottom", 0) while true do Monitore(true) event, button, x, y = os.pullEventRaw() if event == "terminate" then break elseif event == "redstone" then --neuer Durchlauf elseif (event == "monitor_touch") and (button == "monitor_36") then UserCommand( x, y) elseif (event == "monitor_touch") and (button == "monitor_63") then UserCommand( x, y) else print(event, button, x, y) print(" ") end 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)