MagmaLP

Item-WertRechner_DE

Apr 23rd, 2022 (edited)
983
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 8.67 KB | None | 0 0
  1. function calc_color(color)
  2.     return math.pow(2, color - 1)
  3. end
  4.  
  5. function msg(gap, line, color, groundb, text)
  6.     term.setBackgroundColor(calc_color(groundb))
  7.     term.setCursorPos(gap,line)
  8.     term.setTextColor(calc_color(color))
  9.     text = term.write(text)
  10. end  
  11.  
  12. function mainp()
  13.     --AE und HV Mengenabfrage
  14.     term.setBackgroundColor(colors.black)
  15.     term.clear()
  16.     msg(01,02,09,16,"Wie viele Adjustable Emitter besitzt der Verkäufer?")
  17.     term.setTextColor(colors.red)
  18.     term.setCursorPos(01,03)
  19.     AdjustableEmitterBesitz1 = read()
  20.     AdjustableEmitterBesitz1 = tonumber(AdjustableEmitterBesitz1)
  21.     if AdjustableEmitterBesitz1 < 1 then
  22.         msg(01,05,09,16,"Wie viele HVs besitzt der Verkäufer?")
  23.         term.setTextColor(colors.red)
  24.         term.setCursorPos(01,06)
  25.  
  26.         nutzlos1 = read()
  27.     end
  28.     msg(01,09,09,16,"Wie viele Adjustable Emitter besitzt der Käufer?")
  29.     term.setTextColor(colors.red)
  30.     term.setCursorPos(01,10)
  31.     AdjustableEmitterBesitz2 = read()
  32.     AdjustableEmitterBesitz2 = tonumber(AdjustableEmitterBesitz2)
  33.     if AdjustableEmitterBesitz2 < 1 then
  34.         msg(01,12,09,16,"Wie viele HVs besitzt der Käufer?")
  35.         term.setTextColor(colors.red)
  36.         term.setCursorPos(01,13)
  37.         nutzlos2 = read()
  38.     end
  39.  
  40.     --Berechnung kleinster Menge an AEs
  41.     if AdjustableEmitterBesitz1 > AdjustableEmitterBesitz2 then
  42.         AdjustableEmitterBesitz = AdjustableEmitterBesitz2
  43.     elseif AdjustableEmitterBesitz1 < AdjustableEmitterBesitz2 then
  44.         AdjustableEmitterBesitz = AdjustableEmitterBesitz1
  45.     else
  46.         AdjustableEmitterBesitz = AdjustableEmitterBesitz1
  47.     end
  48.  
  49.     --Umrechnung AE-Menge in AE-Rechenmenge
  50.     if AdjustableEmitterBesitz < 10 then
  51.         AdjustableEmitterRechenwert = 1
  52.         AdjustableEmitterRechenwert = tonumber(AdjustableEmitterRechenwert)
  53.     else
  54.         AdjustableEmitterRechenwert = 1 + AdjustableEmitterBesitz / 100
  55.         AdjustableEmitterRechenwert = tonumber(AdjustableEmitterRechenwert)
  56.     end
  57.  
  58.     --Name des Items und Rechenpreis in Dollar
  59.     Adjustable_Emitter = 1536000
  60.     High_Voltage_Solar_Panel = 8000
  61.     Medium_Voltage_Solar_Panel = 1000
  62.     Low_Voltage_Solar_Panel = 125
  63.     Solar_Panel = 15.625
  64.     UU_Matter = 1.953125
  65.     Ferrouse_Ore = 50
  66.     Shiny_Ingot = 500
  67.     Azure_Dust = 1000
  68.     Amaranthine_Dust = 8000
  69.     Iridescent_Dust = 14000
  70.     Wither_Skull = 8000
  71.     Nether_Star = 24000
  72.     Shard_of_Minium = 25
  73.     Quartz_Crystal = 25
  74.     Lead_Ingot = 10
  75.  
  76.     --Item/Verkauf Auswahl
  77.     term.setCursorPos(1,1)
  78.     term.clear()
  79.     msg(51,01,01,16,"x")
  80.     msg(01,01,01,16,"Was für ein Item wird verkauft?")
  81.     msg(01,02,15,16,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
  82.     msg(02,03,01,15," UU-Matter              ") msg(27,03,01,15," Nether Star            ")
  83.     msg(02,05,01,15," Ferrouse Ore           ") msg(27,05,01,15," Shard of Minium        ")
  84.     msg(02,07,01,15," Shiny Ingot            ") msg(27,07,01,15," Quartz Crystal         ")
  85.     msg(02,09,01,15," Azure Dust             ") msg(27,09,01,15," Lead Ingot             ")
  86.     msg(02,11,01,15," Amaranthine Dust       ") msg(27,11,01,15,"                        ")
  87.     msg(02,13,01,15," Iridescent Dust        ") msg(27,13,01,15,"                        ")
  88.     msg(02,15,01,15," Wither Skull           ") msg(27,15,01,15,"                        ")
  89.     term.setCursorPos(01,17)
  90. end
  91.  
  92. --Hauptberechnungsformel_1
  93. function berechnung1()
  94.     AE = AdjustableEmitterRechenwert * Verkauf_Item_Preis * Verkauf_Menge / Adjustable_Emitter
  95.     if AE <= 0.001 then
  96.         AE = 0.0
  97.     end
  98.     HV = AdjustableEmitterRechenwert * Verkauf_Item_Preis * Verkauf_Menge / High_Voltage_Solar_Panel
  99.     MV = AdjustableEmitterRechenwert * Verkauf_Item_Preis * Verkauf_Menge / Medium_Voltage_Solar_Panel
  100.     LV = AdjustableEmitterRechenwert * Verkauf_Item_Preis * Verkauf_Menge / Low_Voltage_Solar_Panel
  101.     Sol = AdjustableEmitterRechenwert * Verkauf_Item_Preis * Verkauf_Menge / Solar_Panel
  102. end
  103.  
  104.  
  105. --Button Abfrage und Vorbereitung der Rechnung
  106. function itemabfrage()
  107.     local event, button, X, Y = os.pullEvent("mouse_click")
  108.     if X >= 02 and X <= 25 and Y == 3 then  --UU_Matter
  109.         Verkauf_Item_Preis = UU_Matter
  110.         print("Wie viel UU-Matter wird verkauft?")
  111.         Verkauf_Menge = read()
  112.         Verkauf_Menge = tonumber(Verkauf_Menge)
  113.         berechnung1()
  114.     elseif X >= 02 and X <= 25 and Y == 5 then  --Ferrouse_Ore
  115.         Verkauf_Item_Preis = Ferrouse_Ore
  116.         print("Wie viel Ferrouse Ore wird verkauft?")
  117.         Verkauf_Menge = read()
  118.         Verkauf_Menge = tonumber(Verkauf_Menge)
  119.         berechnung1()
  120.     elseif X >= 02 and X <= 25 and Y == 7 then  --Shiny_Ingot
  121.         Verkauf_Item_Preis = Shiny_Ingot
  122.         print("Wie viel Shiny Ingot wird verkauft?")
  123.         Verkauf_Menge = read()
  124.         Verkauf_Menge = tonumber(Verkauf_Menge)
  125.         berechnung1()
  126.     elseif X >= 02 and X <= 25 and Y == 9 then  --Azure_Dust
  127.         Verkauf_Item_Preis = Azure_Dust
  128.         print("Wie viel Azure Dust wird verkauft?")
  129.         Verkauf_Menge = read()
  130.         Verkauf_Menge = tonumber(Verkauf_Menge)
  131.         berechnung1()
  132.     elseif X >= 02 and X <= 25 and Y == 11 then --Amaranthine_Dust
  133.         Verkauf_Item_Preis = Amaranthine_Dust
  134.         print("Wie viel Amaranthine Dust wird verkauft?")
  135.         Verkauf_Menge = read()
  136.         Verkauf_Menge = tonumber(Verkauf_Menge)
  137.         berechnung1()
  138.     elseif X >= 02 and X <= 25 and Y == 13 then --Iridescent_Dust
  139.         Verkauf_Item_Preis = Iridescent_Dust
  140.         print("Wie viel Iridescent Dust wird verkauft?")
  141.         Verkauf_Menge = read()
  142.         Verkauf_Menge = tonumber(Verkauf_Menge)
  143.         berechnung1()
  144.     elseif X >= 02 and X <= 25 and Y == 15 then --Wither_Skull
  145.         Verkauf_Item_Preis = Wither_Skull
  146.         print("Wie viele Wither Skulls wird verkauft?")
  147.         Verkauf_Menge = read()
  148.         Verkauf_Menge = tonumber(Verkauf_Menge)
  149.         berechnung1()
  150.     elseif X >= 27 and X <= 50 and Y == 03 then --Nether_Star
  151.         Verkauf_Item_Preis = Nether_Star
  152.         print("Wie viele Nether Stars wird verkauft?")
  153.         Verkauf_Menge = read()
  154.         Verkauf_Menge = tonumber(Verkauf_Menge)
  155.         AE = AdjustableEmitterRechenwert * 24000 * Verkauf_Menge / Adjustable_Emitter
  156.         HV = AdjustableEmitterRechenwert * 24000 * Verkauf_Menge / High_Voltage_Solar_Panel
  157.         MV = AdjustableEmitterRechenwert * 24000 * Verkauf_Menge / Medium_Voltage_Solar_Panel
  158.         LV = AdjustableEmitterRechenwert * 24000 * Verkauf_Menge / Low_Voltage_Solar_Panel
  159.         Sol = AdjustableEmitterRechenwert * 24000 * Verkauf_Menge / Solar_Panel
  160.     elseif X >= 27 and X <= 50 and Y == 05 then --Shard_of_Minium
  161.         Verkauf_Item_Preis = Shard_of_Minium
  162.         print("Wie viel Shard of Minium wird verkauft?")
  163.         Verkauf_Menge = read()
  164.         Verkauf_Menge = tonumber(Verkauf_Menge)
  165.         AE = AdjustableEmitterRechenwert * 30 * Verkauf_Menge / Adjustable_Emitter
  166.         HV = AdjustableEmitterRechenwert * 30 * Verkauf_Menge / High_Voltage_Solar_Panel
  167.         MV = AdjustableEmitterRechenwert * 30 * Verkauf_Menge / Medium_Voltage_Solar_Panel
  168.         LV = AdjustableEmitterRechenwert * 30 * Verkauf_Menge / Low_Voltage_Solar_Panel
  169.         Sol = AdjustableEmitterRechenwert * 30 * Verkauf_Menge / Solar_Panel
  170.     elseif X >= 27 and X <= 50 and Y == 07 then --Quartz_Crystal
  171.         Verkauf_Item_Preis = Quartz_Crystal
  172.         print("Wie viel Quartz Crystal wird verkauft?")
  173.         Verkauf_Menge = read()
  174.         Verkauf_Menge = tonumber(Verkauf_Menge)
  175.         berechnung1()
  176.     elseif X >= 27 and X <= 50 and Y == 09 then --Lead_Ingot
  177.         Verkauf_Item_Preis = Lead_Ingot
  178.         print("Wie viel Lead Ingot wird verkauft?")
  179.         Verkauf_Menge = read()
  180.         Verkauf_Menge = tonumber(Verkauf_Menge)
  181.         berechnung1()
  182.     elseif X == 51 and Y == 01 then                             --x
  183.         shell.run("Category_DE")
  184.     else
  185.         itemabfrage()
  186.     end
  187. end
  188.  
  189. function ausgabe()
  190.     msg(01,01,05,16,"Berechnung der Gegenwerte:")
  191.     msg(01,02,05,16,"~~~~~~~~~~~~~~~~~~~~~~~~~~")
  192.     term.setTextColor(colors.lightGray)
  193.     term.setCursorPos(01,05)
  194.     print(" Adjustable Emitter:               "..AE)
  195.     print(" ")
  196.     print(" High Voltage Solar Panels:        "..HV)
  197.     print(" ")
  198.     print(" Medium Voltage Solar Panels:      "..MV)
  199.     print(" ")
  200.     print(" Low Voltage Solar Panels:         "..LV)
  201.     print(" ")
  202.     print(" Solar Panels:                     "..Sol)
  203. end
  204.  
  205. while true do
  206. --Program Start
  207.     mainp()
  208.     itemabfrage()
  209.  
  210.     --Ausgabe berechneter Mengen
  211.     term.setCursorPos(1,1)
  212.     term.setBackgroundColor(colors.black)
  213.     term.clear()
  214.  
  215.     ausgabe()
  216.  
  217.     --Programm neustarten                                                )
  218.     msg(01,17,01,06,"           -> neue Berechnung starten <-           ")
  219.     msg(01,19,01,15,"               -> System Neustart <-               ")
  220.  
  221.     local event, button, X, Y = os.pullEvent("mouse_click")
  222.     if X >= 01 and X <= 51 and Y == 17 then --neue Berechnung
  223.         -- neue berechnung
  224.     elseif X >= 01 and X <= 51 and Y == 19 then --restart
  225.         os.reboot()
  226.     end
  227.     sleep(0.5)
  228. end
  229.  
Advertisement
Add Comment
Please, Sign In to add comment