Advertisement
Guest User

Untitled

a guest
Apr 10th, 2020
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.47 KB | None | 0 0
  1. local component = require("component")
  2. local gpu = component.gpu
  3. gpu.setResolution(80, 25)
  4. local gui = require("gui")
  5. local event = require("event")
  6. local modem = component.modem
  7. local serialization = require("serialization")
  8.  
  9. gui.checkVersion(2, 5)
  10.  
  11. local prgName = "dialer"
  12. local version = "v1.0"
  13. local currentlySelectedAddress = ""
  14. local manualDialText = ""
  15. local addAddressName = ""
  16. local addAddressMW = ""
  17. local addAddressPG = ""
  18. local addAddressUN = ""
  19. local dialingAddressLength = 0
  20. local currentDialedAmount = 0
  21.  
  22. -- Begin: Callbacks
  23. local function list_database_callback(guiID, listID, selected, text)
  24.    currentlySelectedAddress = text
  25. end
  26.  
  27. local function button_refresh_database_callback(guiID, buttonID)
  28.    modem.broadcast(69, "get_database")
  29.  
  30.    local _, _, _, _, _, requestdataRaw = event.pull("modem_message")
  31.  
  32.    local databaseData = serialization.unserialize(requestdataRaw)
  33.  
  34.    gui.clearList(guiID, list_database)
  35.  
  36.    for k, v in pairs(databaseData) do
  37.       if k ~= "lastaccessed" then
  38.          gui.insertList(guiID, list_database, k)
  39.       end
  40.    end
  41. end
  42.  
  43. local function button_dial_database(guiID, buttonID)
  44.    modem.broadcast(69, "dial_database", currentlySelectedAddress)
  45. end
  46.  
  47. local function button_delete_database_callback(guiID, buttonID)
  48.    modem.broadcast(69, "remove_address", currentlySelectedAddress)
  49. end
  50.  
  51. local function button_close_gate_callback(guiID, buttonID)
  52.    modem.broadcast(69, "close_gate")
  53. end
  54.  
  55. local function button_end_dial_callback(guiID, buttonID)
  56.    modem.broadcast(69, "end_dial")
  57. end
  58.  
  59. local function text_dial_manual(guiID, textID, text)
  60.    manualDialText = text
  61. end
  62.  
  63. local function text_add_address_name(guiID, textID, text)
  64.    addAddressName = text
  65. end
  66.  
  67. local function text_add_address_mw(guiID, textID, text)
  68.    addAddressMW = text
  69. end
  70.  
  71. local function text_add_address_pg(guiID, textID, text)
  72.    addAddressPG = text
  73. end
  74.  
  75. local function text_add_address_un(guiID, textID, text)
  76.    addAddressUN = text
  77. end
  78.  
  79. local function button_dial_manual_callback(guiID, buttonID)
  80.    modem.broadcast(69, "dial_address", manualDialText)
  81. end
  82.  
  83. local function button_add_address_callback(guiID, buttonID)
  84.    modem.broadcast(69, "add_address", addAddressName, addAddressMW, addAddressPG, addAddressUN)
  85. end
  86.  
  87. local function hprogress_dial_progress(guiID, hProgressID)
  88.    -- Your code here
  89. end
  90.  
  91. local function exitButtonCallback(guiID, id)
  92.    local result = gui.getYesNo("", "Do you really want to exit?", "")
  93.    if result == true then
  94.       gui.exit()
  95.    end
  96.    gui.displayGui(mainGui)
  97. end
  98. -- End: Callbacks
  99.  
  100. -- Begin: Menu definitions
  101. mainGui = gui.newGui(1, 2, 79, 23, true)
  102. list_database = gui.newList(mainGui, 1, 1, 20, 10, {}, list_database_callback, "Database")
  103. button_refresh_database = gui.newButton(mainGui, 2, 12, "Refresh Database", button_refresh_database_callback)
  104. button_dial_database = gui.newButton(mainGui, 1, 13, "Dial from database", button_dial_database)
  105. button_delete_database = gui.newButton(mainGui, 4, 14, "Delete entry", button_delete_database_callback)
  106. button_close_gate = gui.newButton(mainGui, 5, 15, "Close Gate", button_close_gate_callback)
  107. button_end_dial = gui.newButton(mainGui, 1, 16, "End dialing sequence", button_end_dial_callback)
  108. text_dial_manual = gui.newText(mainGui, 1, 18, 8, "Manual Address Input", text_dial_manual, 20, false)
  109. text_add_address_name = gui.newText(mainGui, 22, 4, 100, "Add Address Name", text_add_address_name, 20, false)
  110. text_add_address_mw = gui.newText(mainGui, 22, 5, 8, "Add Address MW", text_add_address_mw, 20, false)
  111. text_add_address_pg = gui.newText(mainGui, 22, 6, 8, "Add Address PG", text_add_address_pg, 20, false)
  112. text_add_address_un = gui.newText(mainGui, 22, 7, 8, "Add Address UN", text_add_address_un, 20, false)
  113. button_add_address = gui.newButton(mainGui, 22, 8, "Add address to database", button_add_address_callback)
  114. button_dial_manual = gui.newButton(mainGui, 2, 19, "Dial from Manual", button_dial_manual_callback)
  115. label_gate_type = gui.newLabel(mainGui, 1, 21, "type", 0xc0c0c0, 0x0, 7)
  116. exitButton = gui.newButton(mainGui, 73, 23, "exit", exitButtonCallback)
  117. -- End: Menu definitions
  118.  
  119. gui.clearScreen()
  120. gui.setTop("Stargate Dialing")
  121. gui.setBottom("Made by PoltixeTheDerg")
  122.  
  123. modem.open(69)
  124. modem.open(70)
  125.  
  126. modem.broadcast(69, "get_gate_type")
  127.  
  128. local _, _, _, _, _, requestdataRaw = event.pull("modem_message")
  129.  
  130. gui.setText(mainGui, label_gate_type, requestdataRaw, true)
  131.  
  132. -- Main loop
  133. while true do
  134.    gui.runGui(mainGui)
  135. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement