Advertisement
Guest User

hud.lua

a guest
Jan 29th, 2017
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.08 KB | None | 0 0
  1. local component = require("component")
  2. local colors = require("colors")
  3. local bridge = component.openperipheral_bridge
  4. local table = require("table")
  5.  
  6. function EnderPouchSystem(tempX, tempY)
  7.   local startX = tempX
  8.   local startY = tempY
  9.   local endX = tempX + 112
  10.  
  11.   local paddingIconY = 16 --distance between vertical placement of icons
  12.   local paddingIconX = 16 --distance between horizontal placement of icons
  13.  
  14.   local paddingTextX = 4 --horizontal additional padding to add text
  15.   local paddingTextY = 5 --vertical additional padding to add text
  16.  
  17.   --bridge.addBox(startX,startY,endX,paddingIconY + paddingIconY,colors.black,0.2)
  18.  
  19.   bridge.addIcon(startX,startY,"EnderStorage:enderPouch")
  20.   bridge.addText(startX + paddingIconX + paddingTextX,startY + paddingTextY,"Storage Deposit",0xFFFFFF)
  21.  
  22.   bridge.addIcon(startX,startY + paddingIconY,"EnderStorage:enderPouch",4095)
  23.   bridge.addText(startX + paddingIconX + paddingTextX,startY + paddingIconY + paddingTextY,"Exchanging pouch",0xFFFFFF)
  24. end
  25.  
  26. function IndividualHud()  
  27.  
  28.   local players = {}
  29.  
  30.   local attachedCount = 0
  31.   local capturedCount = 0
  32.  
  33.   local labelPlayers = bridge.addText(-10,2, "Player count: 0/0")
  34.   labelPlayers.setScreenAnchor("right","top")
  35.   labelPlayers.setScreenAnchor("right","bottom")
  36.   labelPlayers.setRotation(-90)
  37.  
  38.   local function InitializePlayer(name,uuid)
  39.     local playerData = {name = name, uuid = uuid}
  40.  
  41.     playerData.surface = bridge.getSurfaceByUUID(playerData.uuid)
  42.     labelPlayer = playerData.surface.addText(0,-10,"Hello" .. playerData.name)
  43.     labelPlayer.setAlignment("middle", "top")
  44.  
  45.     players[playerData.uuid] = playerData
  46.   end
  47.  
  48.   local function changeCounter(deltaAttached, deltaCaptured)
  49.     attachedCount = attachedCount + deltaAttached
  50.     capturedCount = capturedCount + deltaCaptured
  51.     labelPlayers.setText("Player count: " .. attachedCount .. "/" .. capturedCount)
  52.   end
  53.  
  54.   for _,user in pairs(bridge.getUsers()) do
  55.     InitializePlayer(user.name,user.uuid)
  56.     changeCounter(1,0)
  57.   end
  58.  
  59.   while true do
  60.     evt = table.pack(os.pullEvent())
  61.     if evt[1] == "key" then
  62.       break
  63.  
  64. -- Player equips glasses
  65.     elseif evt[1] == "glasses_attach" then
  66.       local name = evt[3]
  67.       local uuid = evt[4]
  68.       InitializePlayer(name,uuid)
  69.       changeCounter(1,0)
  70.  
  71. --Player unequips glasses
  72.     elseif evt[1] == "glasses_detach" then
  73.       local playerUuid = evt[4]
  74.       players[playerUuid] = nil
  75.       changeCounter(-1,0)
  76.  
  77. --
  78.     elseif evt[1] == "glasses_release" then
  79.       changeCounter(-1,0)
  80.       local playerUuid = evt[4]
  81.       local playerData = players[playerUuid]
  82.  
  83.       if playerData then
  84.         playerData.surface.clear()
  85.         initialisePlayer(playerData.name,playerData.uuid)
  86.       end
  87.     end
  88.   end
  89. end
  90.  
  91. function start()
  92.   bridge.clear()
  93.  
  94.   --Put functions here(if they are static)
  95.  
  96.      --Example function()
  97.  
  98.   --End of static functions
  99.  
  100.     while true do
  101.     bridge.clear()
  102.  
  103.     --Put functions here(if they need to be updated every tick)
  104.  
  105.       EnderPouchSystem(2,30)
  106.      -- ConnectedPlayers()
  107.  
  108.     IndividualHud()
  109.  
  110.     --End of ticking functions
  111.    
  112.     bridge.sync()
  113.     os.sleep(0.1)
  114.     end
  115. end
  116.  
  117. start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement