Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 13 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
:heavy_exclamation_mark: | So much has been changed I moved it into its own repo. (https://github.com/LocuraDU/DU-Locura-Storage-Info). Development will continue there. No more development will happen on this repo.
:---: | :---

:heavy_exclamation_mark: | v2.0+ No Longer Contains Any HTML. No Need To Adjust Game Settings.
:---: | :---

# du-ore-pure-gas-display
LUA display for t1-t5 ores, minerals, and gasses as of patch Beta 1 r0.28.6 3/22/22
LUA display for t1-t5 ores, minerals, general storage, and gasses as of patch Beta v0.31.0 7/18/2022

![Image of Screen](source/example.jpg?raw=true)

**Instructions:**
- Link Programming Board: Screen & Hub or Container (link order not important)
- Copy contents of config.json and right click on programming board > Advanced > Paste Lua configuration from clipboard
- Edit Lua Parameters: Set Material Name and Container Size in KL
- Turn on Screen & Activate Board
- Link Programming Board: Screen & Hub or Container (link order not important).
- Copy contents of config.json and right click on programming board > Advanced > Paste Lua configuration from clipboard.
- Edit Lua Parameters: Set Material Name, Container Size in KL, and Background Color in Hex value without the "#".
- Turn on Screen & Activate Board.

**Optional:**
- Link relay to programming boards then link pressure tile to relay (forces update when standing on pressure tile)
-
**Supports the following materials:**

**Supports the following materials:**
* Storage (Shows Container Icon For General Use)
* Bauxite
* Aluminium
* Coal
Expand Down
2 changes: 1 addition & 1 deletion config.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"slots":{"0":{"name":"slot1","type":{"events":[],"methods":[]}},"1":{"name":"slot2","type":{"events":[],"methods":[]}},"2":{"name":"slot3","type":{"events":[],"methods":[]}},"3":{"name":"slot4","type":{"events":[],"methods":[]}},"4":{"name":"slot5","type":{"events":[],"methods":[]}},"5":{"name":"slot6","type":{"events":[],"methods":[]}},"6":{"name":"slot7","type":{"events":[],"methods":[]}},"7":{"name":"slot8","type":{"events":[],"methods":[]}},"8":{"name":"slot9","type":{"events":[],"methods":[]}},"9":{"name":"slot10","type":{"events":[],"methods":[]}},"-1":{"name":"unit","type":{"events":[],"methods":[]}},"-2":{"name":"system","type":{"events":[],"methods":[]}},"-3":{"name":"library","type":{"events":[],"methods":[]}}},"handlers":[{"code":"unit.hide()\n\nMaterial = \"Niobium\" --export: (Default: Coal) Ore Name\nVolume_Available_KL = \"1920\" --export: (Default: 192000) Available Volume (KL) in Hub or Container\n\ntemplate = [[\n<style type=\"text/css\">\n body {\n background-color: black;\n color: white;\n }\n\n table {\n width: 60%;\n margin-left: 20%;\n margin-top: 15vh;\n }\n\n img {\n width: 80%;\n }\n \n .left {\n width: 50%;\n text-align: center;\n }\n\n .right {\n text-align: center;\n }\n \n .material {\n font-size: 5vw;\n }\n\n .volume {\n font-size: 8vw;\n }\n\n .units {\n color: #666666;\n }\n\n .bar {\n width: 80%;\n margin-left: 10%;\n margin-top: 5vh;\n border: 1vh solid #666666;\n height: 20vh;\n }\n\n .progress {\n width: ${percent}%;\n height: 100%;\n background-color: #${color};\n }\n</style>\n<div style=\"width: 100%; height: 100%; background-color: black\">\n <table>\n <tr>\n <td class=\"left\">\n <img src=\"../../../../../../../resources_generated/${pureName}.png\" class=\"image\" />\n </td>\n <td class=\"right\">\n <div class=\"material\">${Material}</div>\n <div class=\"volume\">${volume} <span class=\"units\">kL</span></div>\n </td>\n </tr>\n </table>\n <div class=\"bar\"><div class=\"progress\"></div></div>\n</div>\n]]\n\nlocal ores = {\n \n Bauxite=\"iconsLib/materialslib/aluminium_ore\",\n Aluminium=\"iconsLib/materialslib/aluminium_ingot\",\n Coal=\"iconsLib/materialslib/carbonore\",\n Carbon=\"iconsLib/materialslib/carbon_ingot\",\n Hematite=\"iconsLib/materialslib/iron_ore\",\n Iron=\"iconsLib/materialslib/iron_ingot\",\n Quartz=\"iconsLib/materialslib/silicon_ore\",\n Silicon=\"iconsLib/materialslib/silicon_ingot\",\n Chromite=\"iconsLib/materialslib/chromiumore\",\n Chromium=\"iconsLib/materialslib/chromium_ingot\",\n Limestone=\"iconsLib/materialslib/calciumore\",\n Calcium=\"iconsLib/materialslib/calcium_ingot\",\n Malachite=\"iconsLib/materialslib/copper_ore\",\n Copper=\"iconsLib/materialslib/copper_ingot\",\n Natron=\"iconsLib/materialslib/sodiumore\",\n Sodium=\"iconsLib/materialslib/sodium_ingot\",\n Acanthite=\"iconsLib/materialslib/silverore\",\n Silver=\"iconsLib/materialslib/silver_ingot\",\n Garnierite=\"iconsLib/materialslib/nickelore\",\n Nickel=\"iconsLib/materialslib/nickel_ingot\";\n Petalite=\"iconsLib/materialslib/lithiumore\",\n Lithium=\"iconsLib/materialslib/lithium_ingot\",\n Pyrite=\"iconsLib/materialslib/sulfurore\",\n Sulfur=\"iconsLib/materialslib/sulfur_ingot\",\n Cobaltite=\"iconsLib/materialslib/cobaltore\",\n Cobalt=\"iconsLib/materialslib/cobalt_ingot\",\n Cryolite=\"iconsLib/materialslib/fluorineore\",\n Fluorine=\"iconsLib/materialslib/fluorine_ingot\",\n GoldNuggets=\"iconsLib/materialslib/gold_ore\",\n Gold=\"iconsLib/materialslib/gold_ingot\",\n Kolbeckite=\"iconsLib/materialslib/scandium_ore\",\n Scandium=\"iconsLib/materialslib/scandium_ingot\",\n Columbite=\"iconsLib/materialslib/niobiumore\",\n Niobium=\"iconsLib/materialslib/niobium_ingot\",\n Ilmenite=\"iconsLib/materialslib/titaniumore\",\n Titanium=\"iconsLib/materialslib/titanium_ingot\",\n Rhodonite=\"iconsLib/materialslib/manganese_ore\",\n Manganese=\"iconsLib/materialslib/manganese_ingot\",\n Thoramine=\"iconsLib/materialslib/env_thoramine-ore_001_icon\",\n Trithorium=\"iconsLib/materialslib/trithorium_pure\",\n Vanadinite=\"iconsLib/materialslib/vanadiumore\",\n Vanadium=\"iconsLib/materialslib/vanadium_ingot\",\n Hydrogen=\"elementsLib/pures/pure-gazs/pure-gaz-hydrogen_001/icons/env_pure-gaz-hydrogen_001_icon\",\n Oxygen=\"elementsLib/pures/pure-gazs/pure-gaz-oxygen_001/icons/env_pure-gaz-oxygen_001_icon\"\n}\n\nlocal config = {}\n\nfunction configure()\n if checkSlots(slot1, slot2) then\n config.screen = slot1\n config.container = slot2\n maxVolume = math.floor(slot2.getMaxVolume())\n currentVolume = math.floor(slot2.getItemsVolume())\n \n return true\n end\n\n if checkSlots(slot2, slot1) then\n config.screen = slot2\n config.container = slot1\n maxVolume = math.floor(slot1.getMaxVolume())\n currentVolume = math.floor(slot1.getItemsVolume())\n return true\n end\n\n system.print(\"Can't config\")\n return false\nend\n\nfunction checkSlots(a, b)\n return (a ~= nil and b ~= nil and\n string.match(a.getElementClass(), \"Screen\") and\n string.match(b.getElementClass(), \"Container\"))\nend\n\nfunction render()\n local pureName = ores[Material]\n if pureName == nil then\n system.print(\"Invalid ore name\")\n return\n end\n local volume = math.floor(currentVolume / 1000)\n local percent = volume / Volume_Available_KL * 100\n \n system.print(\"Volume: \" ..volume.. \" (volume)\")\n system.print(\"Percent: \" ..percent.. \" (Volume / Volume Available KL * 100)\")\n local color\n if percent > 75 then\n color = \"00aa00\"\n elseif percent > 50 then\n color = \"aaaa00\"\n else\n color = \"aa0000\"\n end\n local params = {\n pureName=pureName,\n Material=Material,\n volume=volume,\n percent=percent,\n color=color\n }\n config.screen.setHTML(interp(template, params))\nend\n\nfunction interp(s, tab)\n return (s:gsub('($%b{})', function(w) return tab[w:sub(3, -2)] or w end))\nend\n\nif configure() then\n render()\nend","filter":{"args":[],"signature":"start()","slotKey":"-1"},"key":"0"}],"methods":[],"events":[]}
{"slots":{"0":{"name":"slot1","type":{"events":[],"methods":[]}},"1":{"name":"slot2","type":{"events":[],"methods":[]}},"2":{"name":"slot3","type":{"events":[],"methods":[]}},"3":{"name":"slot4","type":{"events":[],"methods":[]}},"4":{"name":"slot5","type":{"events":[],"methods":[]}},"5":{"name":"slot6","type":{"events":[],"methods":[]}},"6":{"name":"slot7","type":{"events":[],"methods":[]}},"7":{"name":"slot8","type":{"events":[],"methods":[]}},"8":{"name":"slot9","type":{"events":[],"methods":[]}},"9":{"name":"slot10","type":{"events":[],"methods":[]}},"-1":{"name":"unit","type":{"events":[],"methods":[]}},"-3":{"name":"player","type":{"events":[],"methods":[]}},"-2":{"name":"construct","type":{"events":[],"methods":[]}},"-4":{"name":"system","type":{"events":[],"methods":[]}},"-5":{"name":"library","type":{"events":[],"methods":[]}}},"handlers":[{"code":"-- Code Edits By EricHamby\n-- DU: CredenceH\n-- https://github.com/EricHamby\n-- https://github.com/EricHamby/DU-Basic-Storage-Capacity\n-- Join The \"LOCURA MINING CO\" Organization!\nsystem.print(\"----------------------------------------\")\nsystem.print(\"DU-Basic-Storage-Capacity version 1.0\")\nsystem.print(\"https://github.com/EricHamby/DU-Basic-Storage-Capacity\")\nsystem.print(\"----------------------------------------\")\nunit.hideWidget()\nMaterial = \"Storage\" --export: (Default: Storage) Ore Name\nVolume_Available_KL = \"1433\" --export: (Default: 1433) Available Volume (KL) in Hub or Container\nBG_Color = \"000000\" --export: (Default: 000000 (Black))\n\ntemplate = [[\n<style type=\"text/css\">\nbody {\n background-color: #]] .. BG_Color .. [[;\n color: white;}\ntable {\n width: 60%;\n margin-left: 20%;\n margin-top: 15vh;}\nimg {\n width: 80%;}\n.left {\n width: 50%;\n text-align: center;}\n.right {\n text-align: center;}\n.material {\n font-size: 5vw;}\n.volume {\n font-size: 8vw;}\n.units {\n color: #666666;}\n.bar {\n width: 80%;\n margin-left: 10%;\n margin-top: 5vh;\n border: 1vh solid #666666;\n height: 20vh;}\n.progress {\n width: ${percent}%;\n height: 100%;\n background-color: #${color};}\n</style>\n<div style=\"width: 100%; height: 100%;\">\n <table>\n <tr>\n <td class=\"left\">\n <img src=\"${pureName}\" class=\"image\" />\n </td>\n <td class=\"right\">\n <div class=\"material\">${Material}</div>\n <div class=\"volume\">${volume} <br><span class=\"units\">kL</span></div>\n </td>\n </tr>\n </table>\n <div class=\"bar\"><div class=\"progress\"></div></div>\n</div>]]\n\nlocal ores = { \n Storage=\"assets.prod.novaquark.com/30036/2d99f857-9095-4dc8-8034-48847111904f.png\", \n Bauxite=\"assets.prod.novaquark.com/70186/2a660dc9-9af6-4f4b-87d3-bba4defb1964.png\",\n Aluminium=\"assets.prod.novaquark.com/70186/cfdec659-f969-415e-865b-2f45732c0721.png\",\n Coal=\"assets.prod.novaquark.com/70186/edc9f97e-7359-454e-8ba9-8f960037ae9b.png\",\n Carbon=\"assets.prod.novaquark.com/70186/1bbb1cd2-c592-4e73-a21f-459feafea9f1.png\",\n Hematite=\"assets.prod.novaquark.com/70186/4ff8e9b7-5ed8-4b62-9b02-219219081efa.png\",\n Iron=\"assets.prod.novaquark.com/70186/e4a55054-e4e4-4d31-b476-5a5be639cdfe.png\",\n Quartz=\"assets.prod.novaquark.com/70186/a8d1c39e-d3d3-4a75-bce1-348036588108.png\",\n Silicon=\"assets.prod.novaquark.com/33603/f278b764-df68-43c4-a927-5b95d13129f7.png\",\n Chromite=\"assets.prod.novaquark.com/70186/b7357f8d-43ce-4279-a7d3-75fb6fda4fcd.png\",\n Chromium=\"assets.prod.novaquark.com/70186/30f8a263-b1c5-4183-851a-ef2bdedcbd0c.png\",\n Limestone=\"assets.prod.novaquark.com/70186/dc16bf83-bc00-42b3-8f71-1683e8350efb.png\",\n Calcium=\"assets.prod.novaquark.com/33603/f1088f6b-2a8f-4014-9668-841a0e553b6c.png\",\n Malachite=\"assets.prod.novaquark.com/45824/36e5a9ca-c9f6-4e66-b2f4-fe64c9289224.png\",\n Copper=\"assets.prod.novaquark.com/33603/94c19b9e-c692-4517-9213-e903fdf2bf1a.png\",\n Natron=\"assets.prod.novaquark.com/70186/cec7c516-9f70-4b2b-9d60-6f9527ae36a8.png\",\n Sodium=\"assets.prod.novaquark.com/70186/20bdcf7a-57a1-4c7c-9448-d8bfeaa25807.png\",\n Acanthite=\"assets.prod.novaquark.com/70186/e5246f30-14b3-4bf8-bfc1-9bf20a40ed6e.png\",\n Silver=\"assets.prod.novaquark.com/70186/b8e973ac-7b9b-4d67-907d-569f7ea607a7.png\",\n Garnierite=\"assets.prod.novaquark.com/70186/b8a8443d-374d-4df2-b289-bfe69105a962.png\",\n Nickel=\"assets.prod.novaquark.com/70186/0fc41ba8-947c-49ad-925c-fe08802fd189.png\";\n Petalite=\"assets.prod.novaquark.com/70186/3ce3c407-4cfc-4c90-9258-c7af0a5bcf97.png\",\n Lithium=\"assets.prod.novaquark.com/70186/d3ff1b6d-8e4e-4d9a-92ba-471eb41748b3.png\",\n Pyrite=\"assets.prod.novaquark.com/70186/0423117d-8754-470c-873c-9b56bf3b9ae2.png\",\n Sulfur=\"assets.prod.novaquark.com/70186/f7b48d69-05dc-4ab9-8dcd-98db49ea1c4d.png\",\n Cobaltite=\"assets.prod.novaquark.com/70186/a1e3cbd0-c1c1-423d-abea-bf89fbbeb936.png\",\n Cobalt=\"assets.prod.novaquark.com/70186/d19ba950-6d03-4d48-8ccd-53cca2e75670.png\",\n Cryolite=\"assets.prod.novaquark.com/70186/54c5acf2-7c0c-4154-b38c-ffe22d349b80.png\",\n Fluorine=\"assets.prod.novaquark.com/70186/de954433-be17-41d1-bbc6-e869f299af27.png\",\n GoldNuggets=\"assets.prod.novaquark.com/70186/335baaee-7651-4b90-9e5a-290950ed0f5a.png\",\n Gold=\"assets.prod.novaquark.com/70186/93d6fc8a-b279-4888-b771-d8c6c1e5537b.png\",\n Kolbeckite=\"assets.prod.novaquark.com/70186/c4d32953-9bfb-4586-974d-de0a2ea0f954.png\",\n Scandium=\"assets.prod.novaquark.com/70186/cabbf832-0cd8-4c36-b2fd-447b4d59b255.png\",\n Columbite=\"assets.prod.novaquark.com/70186/891cbe02-e34c-4473-9cac-65ba67075e47.png\",\n Niobium=\"assets.prod.novaquark.com/70186/5f88a651-62ad-4a28-985f-b1f8ad8bded4.png\",\n Ilmenite=\"assets.prod.novaquark.com/70186/13f64ee1-4c8d-40bb-9eff-605e6e6e681f.png\",\n Titanium=\"assets.prod.novaquark.com/70186/b59240cd-f161-4939-a634-a8ba5f55e5a6.png\",\n Rhodonite=\"assets.prod.novaquark.com/70186/a2f5af65-de9e-4b49-a752-a47a42eca4e9.png\",\n Manganese=\"assets.prod.novaquark.com/70186/2f1b6ad3-b034-46d4-862d-c5d3fc8281eb.png\",\n Thoramine=\"assets.prod.novaquark.com/70186/d31d5c49-80d1-4d4e-aa87-9e15d161992b.png\",\n Trithorium=\"iconsLib/materialslib/trithorium_pure\",\n Vanadinite=\"assets.prod.novaquark.com/70186/34804219-fcbb-4900-9358-77688ef535fe.png\",\n Vanadium=\"assets.prod.novaquark.com/70186/6bab2dbf-b46a-4ecd-b931-fa9709f721f8.png\",\n Hydrogen=\"assets.prod.novaquark.com/70186/88781b09-fd68-4f5b-a128-376ca6a7457e.png\",\n Oxygen=\"assets.prod.novaquark.com/70186/828ca6c1-2ef0-4845-b5a6-b1a02d206b69.png\"}\n\nlocal config = {}\nfunction configure()\n if checkSlots(slot1, slot2) then\n config.screen = slot1\n config.container = slot2\n maxVolume = math.floor(slot2.getMaxVolume())\n currentVolume = math.floor(slot2.getItemsVolume()) \n return true\n end\n\n if checkSlots(slot2, slot1) then\n config.screen = slot2\n config.container = slot1\n maxVolume = math.floor(slot1.getMaxVolume())\n currentVolume = math.floor(slot1.getItemsVolume())\n return true\n end\n\n system.print(\"Can't config\")\n return false\nend\n\nfunction checkSlots(a, b)\n return (a ~= nil and b ~= nil and\n string.match(a.getClass(), \"Screen\") and\n string.match(b.getClass(), \"Container\"))\nend\nfunction render()\n local pureName = ores[Material]\n if pureName == nil then\n system.print(\"Invalid ore name\")\n return\n end\n local volume = math.floor(currentVolume / 1000)\n local percent = volume / Volume_Available_KL * 100\n system.print(\"Volume: \" ..volume.. \" (volume)\")\n system.print(\"Percent: \" ..percent.. \" (Volume / Volume Available KL * 100)\")\n local color\n if percent > 75 then\n color = \"00aa00\"\n elseif percent > 50 then\n color = \"aaaa00\"\n else\n color = \"aa0000\"\n end\n local params = {\n pureName=pureName,\n Material=Material,\n volume=volume,\n percent=percent,\n color=color\n }\n config.screen.setHTML(interp(template, params))\nend\n\nfunction interp(s, tab)\n return (s:gsub('($%b{})', function(w) return tab[w:sub(3, -2)] or w end))\nend\n\nif configure() then\n render()\nend","filter":{"args":[],"signature":"start()","slotKey":"-1"},"key":"0"}],"methods":[],"events":[]}
Loading