Advertisement
Guest User

circuitBreakerCore

a guest
Jun 16th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 9.01 KB | None | 0 0
  1. local devScreenW, devScreenH = 1600, 900
  2. local screenW, screenH = guiGetScreenSize()
  3. local mainRectanleDimension = {
  4.     startX = (screenW - 541 / screenW * devScreenW) / 2,
  5.     startY = (screenH - 286 / screenH * devScreenH) / 2,
  6.     width = 541 / screenW * devScreenW,
  7.     height = 286 / screenH * devScreenH
  8. }
  9. local numberOfLines = 1
  10. local xSpeed = 0
  11. local ySpeed = 0
  12. local started = false
  13. local timer
  14.  
  15. local startEndPointSize = {
  16.     width = 17 / screenW * devScreenW,
  17.     height = 22 / screenH * devScreenH
  18. }
  19.  
  20. local startPointsDimensions = {
  21.     {
  22.         startX = 1004 / screenW * devScreenW,
  23.         startY = 290 / screenH * devScreenH,
  24.         rotation = 90
  25.     }
  26. }
  27.  
  28. local endPointsDimensions = {
  29.     {
  30.         startX = 620 / screenW * devScreenW,
  31.         startY = 588 / screenH * devScreenH,
  32.         rotation = -90
  33.     }
  34. }
  35.  
  36. local obsticlesDimensions = {
  37.     {
  38.         startX = {
  39.             1028 / screenW * devScreenW,
  40.             907 / screenW * devScreenW,
  41.             731 / screenW * devScreenW,
  42.             869 / screenW * devScreenW,
  43.             529 / screenW * devScreenW,
  44.             529 / screenW * devScreenW,
  45.             529 / screenW * devScreenW
  46.         },
  47.         startY = {
  48.             308 / screenH * devScreenH,
  49.             307 / screenH * devScreenH,
  50.             419 / screenH * devScreenH,
  51.             507 / screenH * devScreenH,
  52.             307 / screenH * devScreenH,
  53.             428 / screenH * devScreenH,
  54.             522 / screenH * devScreenH
  55.         },
  56.         width = {
  57.             42 / screenW * devScreenW,
  58.             91 / screenW * devScreenW,
  59.             103 / screenW * devScreenW,
  60.             201 / screenW * devScreenW,
  61.             314 / screenW * devScreenW,
  62.             167 / screenW * devScreenW,
  63.             55 / screenW * devScreenW
  64.         },
  65.         height = {
  66.             120 / screenH * devScreenH,
  67.             163 / screenH * devScreenH,
  68.             174 / screenH * devScreenH,
  69.             86 / screenH * devScreenH,
  70.             84 / screenH * devScreenH,
  71.             77 / screenH * devScreenH,
  72.             71 / screenH * devScreenH
  73.         }
  74.     }
  75. }
  76.  
  77. local circuitPathStart = {
  78.     {
  79.         startX = 1012 / screenW * devScreenW,
  80.         startY = 309 / screenH * devScreenH,
  81.         direction = "y"
  82.     }
  83. }
  84.  
  85. local lines = {}
  86. function start()
  87.     if circuitPathStart[1]["direction"] == "y" then
  88.         ySpeed = 10
  89.     elseif circuitPathStart[1]["direction"] == "x" then
  90.         xSpeed = 10
  91.     end
  92.     table.insert(lines, 1, {})
  93.     lines[numberOfLines]["startX"] = circuitPathStart[1]["startX"]
  94.     lines[numberOfLines]["startY"] = circuitPathStart[1]["startY"]
  95.     lines[numberOfLines]["endX"] = circuitPathStart[1]["startX"]
  96.     lines[numberOfLines]["endY"] = circuitPathStart[1]["startY"]
  97.     timer = setTimer(move, 200, 0)
  98.     addEventHandler("onClientRender", getRootElement(), drawSystem)
  99. end
  100. function checkIfSucced()
  101.     if ySpeed == 0 then
  102.         if
  103.             lines[numberOfLines]["endY"] >= endPointsDimensions[1]["startY"] and
  104.                 lines[numberOfLines]["endY"] <= endPointsDimensions[1]["startY"] + startEndPointSize["height"]
  105.          then
  106.             if
  107.                 lines[numberOfLines]["endX"] >= endPointsDimensions[1]["startX"] and
  108.                     lines[numberOfLines]["endX"] <= endPointsDimensions[1]["startX"] + startEndPointSize["width"]
  109.              then
  110.                 outputChatBox("Succeed")
  111.             end
  112.         end
  113.     elseif xSpeed == 0 then
  114.         if
  115.             lines[numberOfLines]["endX"] >= endPointsDimensions[1]["startX"] and
  116.                 lines[numberOfLines]["endX"] <= endPointsDimensions[1]["startX"] + startEndPointSize["width"]
  117.          then
  118.             if
  119.                 lines[numberOfLines]["endY"] >= endPointsDimensions[1]["startY"] and
  120.                     lines[numberOfLines]["endY"] <= endPointsDimensions[1]["startY"] + startEndPointSize["height"]
  121.              then
  122.                 outputChatBox("Succeed")
  123.             end
  124.         end
  125.     end
  126. end
  127. function checkIfFail()
  128.     for i = 1, #obsticlesDimensions[1]["startX"], 1 do
  129.         if ySpeed == 0 then
  130.             if
  131.                 lines[numberOfLines]["endY"] >= obsticlesDimensions[1]["startY"][i] and
  132.                     lines[numberOfLines]["endY"] <=
  133.                         obsticlesDimensions[1]["startY"][i] + obsticlesDimensions[1]["height"][i]
  134.              then
  135.                 if
  136.                     lines[numberOfLines]["endX"] >= obsticlesDimensions[1]["startX"][i] and
  137.                         lines[numberOfLines]["endX"] <=
  138.                             obsticlesDimensions[1]["startX"][i] + obsticlesDimensions[1]["width"][i]
  139.                  then
  140.                     outputChatBox("fail")
  141.                 end
  142.             end
  143.         elseif xSpeed == 0 then
  144.             if
  145.                 lines[numberOfLines]["endX"] >= obsticlesDimensions[1]["startX"][i] and
  146.                     lines[numberOfLines]["endX"] <=
  147.                         obsticlesDimensions[1]["startX"][i] + obsticlesDimensions[1]["width"][i]
  148.              then
  149.                 if
  150.                     lines[numberOfLines]["endY"] >= obsticlesDimensions[1]["startY"][i] and
  151.                         lines[numberOfLines]["endY"] <=
  152.                             obsticlesDimensions[1]["startY"][i] + obsticlesDimensions[1]["height"][i]
  153.                  then
  154.                     outputChatBox("fail")
  155.                 end
  156.             end
  157.         end
  158.     end
  159. end
  160. function checkIfInMainBox()
  161.     if ySpeed == 0 then
  162.         if not
  163.             (lines[numberOfLines]["endX"] >= mainRectanleDimension["startX"] and
  164.                 lines[numberOfLines]["endX"] <= mainRectanleDimension["startX"] + mainRectanleDimension["width"])
  165.          then
  166.             outputChatBox("failllll")
  167.         end
  168.     elseif xSpeed == 0 then
  169.         if not
  170.              (lines[numberOfLines]["endY"] >= mainRectanleDimension["startY"]and
  171.                 lines[numberOfLines]["endY"] <= mainRectanleDimension["startY"] + mainRectanleDimension["height"])
  172.          then
  173.             outputChatBox("faillllllllll")
  174.         end
  175.     end
  176. end
  177. function move()
  178.     lines[numberOfLines]["endX"] = lines[numberOfLines]["endX"] + xSpeed
  179.     lines[numberOfLines]["endY"] = lines[numberOfLines]["endY"] + ySpeed
  180.     checkIfFail()
  181.     checkIfSucced()
  182.     checkIfInMainBox()
  183. end
  184.  
  185. function drawNewLine()
  186.     table.insert(lines, numberOfLines + 1, {})
  187.     lines[numberOfLines + 1]["startX"] = lines[numberOfLines]["endX"]
  188.     lines[numberOfLines + 1]["startY"] = lines[numberOfLines]["endY"]
  189.     lines[numberOfLines + 1]["endX"] = lines[numberOfLines]["endX"]
  190.     lines[numberOfLines + 1]["endY"] = lines[numberOfLines]["endY"]
  191.     numberOfLines = numberOfLines + 1
  192. end
  193.  
  194. function onMoveKey(key, PoR)
  195.     if PoR == false then
  196.         if key == "arrow_u" then
  197.             if ySpeed ~= 0 then
  198.                 return
  199.             else
  200.                 drawNewLine()
  201.                 xSpeed = 0
  202.                 ySpeed = -10
  203.             end
  204.         elseif key == "arrow_d" then
  205.             if ySpeed ~= 0 then
  206.                 return
  207.             else
  208.                 drawNewLine()
  209.                 xSpeed = 0
  210.                 ySpeed = 10
  211.             end
  212.         elseif key == "arrow_l" then
  213.             if xSpeed ~= 0 then
  214.                 return
  215.             else
  216.                 drawNewLine()
  217.                 xSpeed = -10
  218.                 ySpeed = 0
  219.             end
  220.         elseif key == "arrow_r" then
  221.             if xSpeed ~= 0 then
  222.                 return
  223.             else
  224.                 drawNewLine()
  225.                 xSpeed = 10
  226.                 ySpeed = 0
  227.             end
  228.         end
  229.     end
  230. end
  231.  
  232. addEventHandler("onClientKey", getRootElement(), onMoveKey)
  233. -- draw event
  234.  
  235. function drawSystem()
  236.     dxDrawImage(
  237.         mainRectanleDimension["startX"],
  238.         mainRectanleDimension["startY"],
  239.         mainRectanleDimension["width"],
  240.         mainRectanleDimension["height"],
  241.         "4.png",
  242.         0,
  243.         0,
  244.         0,
  245.         tocolor(255, 255, 255, 255)
  246.     )
  247.     for i = 1, #obsticlesDimensions[1]["startX"], 1 do
  248.         dxDrawImage(
  249.             obsticlesDimensions[1]["startX"][i],
  250.             obsticlesDimensions[1]["startY"][i],
  251.             obsticlesDimensions[1]["width"][i],
  252.             obsticlesDimensions[1]["height"][i],
  253.             "1.png"
  254.         )
  255.     end
  256.     dxDrawImage(
  257.         startPointsDimensions[1]["startX"],
  258.         startPointsDimensions[1]["startY"],
  259.         startEndPointSize["width"],
  260.         startEndPointSize["height"],
  261.         "startpoint.png",
  262.         startPointsDimensions[1]["rotation"]
  263.     )
  264.     dxDrawImage(
  265.         endPointsDimensions[1]["startX"],
  266.         endPointsDimensions[1]["startY"],
  267.         startEndPointSize["width"],
  268.         startEndPointSize["height"],
  269.         "target.png",
  270.         endPointsDimensions[1]["rotation"]
  271.     )
  272.     for _index, value in ipairs(lines) do
  273.         dxDrawLine(value["startX"], value["startY"], value["endX"], value["endY"], tocolor(0, 0, 0, 255), 2)
  274.     end
  275. end
  276. start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement