Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Variables
- -- peripherals
- local bridge = peripheral.wrap("left")
- -- modem names
- local mfe = "mfe_0"
- local meSys = "appeng_me_tilecontroller_0"
- local honeyTank = "rcirontankvalvetile_1"
- local essenceTank = "rcirontankvalvetile_2"
- local creosoteTank = "rcirontankvalvetile_3"
- local seedOilTank = "rcirontankvalvetile_4"
- -- AE
- local itemID = 3 -- initialize to dirt
- local itemName = "Dirt"
- -- colors
- local red = 0xFF0000
- local yellow = 0xFFFF00
- local black = 0x000000
- -- update delay(lower the more updates)
- local delay = 1 --1 second
- -- Functions
- function IC2Box()
- ic2Box = bridge.addBox(5, 25, 100, 30, black, 0.5)
- ic2TextHeader = bridge.addText(48, 25, "IC2", red)
- ic2Text1 = bridge.addText(5, 35, "", yellow)
- ic2Text2 = bridge.addText(5, 45, "", yellow)
- end
- function IC2Clear()
- ic2Text1.setText("")
- ic2Text2.setText("")
- ic2TextHeader.setText("")
- ic2Box.setOpacity(0)
- end
- function AEBox()
- aeBox = bridge.addBox(5, 65, 100, 40, black, 0.5)
- aeTextHeader = bridge.addText(49, 65, "AE", red)
- aeText1 = bridge.addText(5, 75, "", yellow)
- aeText2 = bridge.addText(5, 85, "", yellow)
- aeText3 = bridge.addText(5, 95, "", yellow)
- end
- function AEClear()
- aeText1.setText("")
- aeText2.setText("")
- aeText3.setText("")
- aeTextHeader.setText("")
- aeBox.setOpacity(0)
- end
- function calcIC2()
- local currentEU = peripheral.call(mfe, "getEUStored")
- local maxEU = peripheral.call(mfe, "getEUCapacity")
- ic2Box.setOpacity(0.5)
- ic2TextHeader.setText("IC2")
- ic2Text1.setText(currentEU.." EU")
- ic2Text2.setText(maxEU.." EU Max")
- end
- function calcAE()
- local storedItemCount = peripheral.call(meSys, "getStoredItemCount")
- local itemCount = peripheral.call(meSys, "countOfItemType",itemID,"0")
- local bytesFree = peripheral.call(meSys, "getFreeBytes")
- aeBox.setOpacity(0.5)
- aeTextHeader.setText("AE")
- aeText1.setText(storedItemCount.." Items")
- aeText2.setText(itemCount.." "..itemName)
- aeText3.setText(bytesFree.." bytes free")
- end
- function helpBox()
- helpBox = bridge.addBox(5, 185, 220, 90, black, 0.5)
- helpTextHeader = bridge.addText(95, 185, "HELP", red)
- helpText1 = bridge.addText(5, 195, "", yellow)
- helpText2 = bridge.addText(5, 205, "", yellow)
- helpText3 = bridge.addText(5, 215, "", yellow)
- helpText4 = bridge.addText(5, 225, "", yellow)
- helpText5 = bridge.addText(5, 235, "", yellow)
- helpText6 = bridge.addText(5, 245, "", yellow)
- helpText7 = bridge.addText(5, 255, "", yellow)
- helpText8 = bridge.addText(5, 265, "", yellow)
- end
- function displayHelp()
- helpBox.setOpacity(0.5)
- helpTextHeader.setText("HELP")
- helpText1.setText("help - List This Help")
- helpText2.setText("helpoff - Remove This Help")
- helpText3.setText("aeon - Show AE Status Window")
- helpText4.setText("aeoff - Remove AE Status Window")
- helpText5.setText("ic2on - Show IC2 Status Window")
- helpText6.setText("ic2off - Remove IC2 Status Window")
- helpText7.setText("tankson - Show RC Tanks Status Window")
- helpText8.setText("tanksoff - Remove RC Tanks Status Window")
- end
- function removeHelp()
- helpBox.setOpacity(0)
- helpTextHeader.setText("")
- helpText1.setText("")
- helpText2.setText("")
- helpText3.setText("")
- helpText4.setText("")
- helpText5.setText("")
- helpText6.setText("")
- helpText7.setText("")
- helpText8.setText("")
- end
- function tanksBox()
- tanksBox = bridge.addBox(5, 125, 125, 50, black, 0.5)
- tanksTextHeader = bridge.addText(45, 125, "RC Tanks", red)
- tanksText1 = bridge.addText(5, 135, "", yellow)
- tanksText2 = bridge.addText(5, 145, "", yellow)
- tanksText3 = bridge.addText(5, 155, "", yellow)
- tanksText4 = bridge.addText(5, 165, "", yellow)
- end
- function displayTanks()
- local honeyLevel = peripheral.call(honeyTank,"getTankInfo", "unknown")
- local seedOilLevel = peripheral.call(seedOilTank,"getTankInfo", "unknown")
- local essenceLevel = peripheral.call(essenceTank,"getTankInfo", "unknown")
- local creosoteLevel = peripheral.call(creosoteTank,"getTankInfo", "unknown")
- tanksBox.setOpacity(0.5)
- tanksTextHeader.setText("RC Tanks")
- tanksText1.setText(tostring(honeyLevel[1].amount).." mB Honey")
- tanksText2.setText(tostring(seedOilLevel[1].amount).." mB Seed Oil")
- tanksText3.setText(tostring(essenceLevel[1].amount).." mB Experience")
- tanksText4.setText(tostring(creosoteLevel[1].amount).." mB Creosote Oil")
- end
- function removeTanks()
- tanksBox.setOpacity(0)
- tanksTextHeader.setText("")
- tanksText1.setText("")
- tanksText2.setText("")
- tanksText3.setText("")
- tanksText4.setText("")
- end
- -- initialize
- local ic2HUD = true
- local aeHUD = true
- local helpHUD = true
- local tanksHUD = true
- bridge.clear()
- AEBox()
- IC2Box()
- helpBox()
- tanksBox()
- -- loop
- while true do
- local myTimer = os.startTimer(delay)
- local event, message = os.pullEvent()
- local firstParam = string.match(message, '[a-z]+')
- local secondParam = string.match(message, '%d+')
- local thirdParam = string.match(message, '[a-zA-Z]-$')
- if ic2HUD == true then calcIC2() end
- if aeHUD == true then calcAE() end
- if helpHUD == true then displayHelp() end
- if tanksHUD == true then displayTanks() end
- if event == "chat_command" then
- if message == "ic2off" then
- IC2Clear()
- ic2HUD = false
- -- Help
- elseif message == "help" then
- displayHelp()
- elseif message == "helpoff" then
- removeHelp()
- helpHUD = false
- -- HUD ON / OFF
- elseif message == "aeoff" then
- AEClear()
- aeHUD = false
- elseif message == "ic2on" then
- calcIC2()
- ic2HUD = true
- elseif message == "aeon" then
- calcAE()
- aeHUD = true
- -- AE Commands
- elseif firstParam == "aeitemcount" then
- itemID = secondParam
- itemName = thirdParam
- calcAE()
- --RC Commands
- elseif message == "tankson" then
- displayTanks()
- elseif message == "tanksoff" then
- removeTanks()
- tanksHUD = false
- else
- -- Do Nothing
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment