Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local moduleName = ...
- local moduleSettings
- if hudSettings[moduleName] then
- moduleSettings = hudSettings[moduleName]
- else
- local settingsFile = fs.open("/Hud/hudSettings","a")
- settingsFile.write(moduleName..[[
- = {
- coreComputerID = 0,
- coreComputerProtocol = "energyCore",
- rfSuffixes = {"K","M","G","T","P","E","Z","Y"},
- alpha = 1,
- barColor = 0xff0000,
- textColor = 0xffff00,
- y = 1,
- x = 1,
- height = 9,
- width = 350,
- }
- ]])
- settingsFile.close()
- os.loadAPI("/Hud/hudSettings")
- moduleSettings = hudSettings[moduleName]
- end
- function formatRF(rf,forceSign)
- local sign
- if rf < 0 then
- sign = "-"
- I = 0-I
- elseif rf > 0 then
- sign = forceSign and "+" or ""
- else
- return "0RF"
- end
- local log = math.floor(math.log(rf)/math.log(1000))
- return sign..string.format("%0.3f",rf/1000^log)..(log > 0 and moduleSettings.rfSuffixes[log] or "").."RF"
- end
- canvas.addRectangle(
- (moduleSettings.x + hudSettings.x-1) * hudSettings.scale,
- (moduleSettings.y + hudSettings.y-1) * hudSettings.scale,
- (moduleSettings.width + 2) * hudSettings.scale,
- (moduleSettings.height + 2) * hudSettings.scale,
- hudSettings.backgroundColor*256 + math.floor(moduleSettings.alpha * hudSettings.alpha * 255)
- )
- local bar = {
- size = {
- moduleSettings.width * hudSettings.scale,
- moduleSettings.height * hudSettings.scale
- },
- object = canvas.addRectangle(
- (moduleSettings.x + hudSettings.x) * hudSettings.scale,
- (moduleSettings.y + hudSettings.y) * hudSettings.scale,
- 0, 0,
- moduleSettings.barColor*256 + math.floor(moduleSettings.alpha * hudSettings.alpha * 255)
- ),
- }
- local text = {
- object = canvas.addText(
- {
- (1+moduleSettings.x+hudSettings.x) * hudSettings.scale,
- (1+moduleSettings.y+hudSettings.y) * hudSettings.scale
- },
- "",
- moduleSettings.textColor*256 + math.floor(moduleSettings.alpha * hudSettings.alpha * 255)
- )
- }
- text.object.setScale(moduleSettings.height * hudSettings.scale / 9)
- while true do
- local data
- repeat
- rednet.send(
- moduleSettings.coreComputerID, "",
- moduleSettings.coreComputerProtocol
- )
- _, data = rednet.receive(moduleSettings.coreComputerProtocol, 1)
- until data
- bar.object.setSize(bar.size[1]*data.RF/data.MaxRF, bar.size[2])
- text.object.setText(formatRF(data.RF).."/"..formatRF(data.MaxRF).." ("..string.format("%0.2f",data.RF/data.MaxRF*100,true).."%)")
- end
Advertisement
Add Comment
Please, Sign In to add comment