Advertisement
Derek1017

Render Box

Apr 10th, 2015
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 13.23 KB | None | 0 0
  1. p = peripheral.wrap("left")
  2. p.clear()
  3.  
  4. variables = {
  5.     ["width"] = 200,
  6.     ["height"] = 100,
  7.     ["lineTransparency"] = 1,
  8.     ["innerTransparency"] = 1,
  9.     ["lineColour"] = 0x000000,
  10.     ["middleColour"] = 0xFFFFFF,
  11.     ["lineTransparency2"] = 1,
  12.     ["innerTransparency2"] = 0,
  13.     ["lineColour2"] = 0x000000,
  14.     ["middleColour2"] = 0xFFFFFF
  15. }
  16. groups = {
  17.     ["left_transparency"] = {
  18.         [1] = {x=2, y=11, width=1, height="height+00",colour="middleColour+0",transparency="innerTransparency+0",colour2="middleColour2+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  19.         [2] = {x=3, y=08, width=1, height="height+06",colour="middleColour+0",transparency="innerTransparency+0",colour2="middleColour2+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  20.         [3] = {x=4, y=06, width=1, height="height+10",colour="middleColour+0",transparency="innerTransparency+0",colour2="middleColour2+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  21.         [4] = {x=5, y=05, width=1, height="height+12",colour="middleColour+0",transparency="innerTransparency+0",colour2="middleColour2+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  22.         [5] = {x=6, y=04, width=2, height="height+14",colour="middleColour+0",transparency="innerTransparency+0",colour2="middleColour2+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  23.         [6] = {x=8, y=03, width=3, height="height+16",colour="middleColour+0",transparency="innerTransparency+0",colour2="middleColour2+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)}
  24.     },
  25.     ["middle_transparency"] = {
  26.         [1] = {x=11,y=2,width="width+0",height="height+18",colour="middleColour+0",transparency="innerTransparency+0",colour2="middleColour2+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)}
  27.     },
  28.     ["right_transparency"] = {
  29.         [1] = {x="width+11", y=03, width=3, height="height+16",colour="middleColour+0",transparency="innerTransparency+0",colour2="middleColour2+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  30.         [2] = {x="width+14", y=04, width=2, height="height+14",colour="middleColour+0",transparency="innerTransparency+0",colour2="middleColour2+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  31.         [3] = {x="width+16", y=05, width=1, height="height+12",colour="middleColour+0",transparency="innerTransparency+0",colour2="middleColour2+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  32.         [4] = {x="width+17", y=06, width=1, height="height+10",colour="middleColour+0",transparency="innerTransparency+0",colour2="middleColour2+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  33.         [5] = {x="width+18", y=08, width=1, height="height+06",colour="middleColour+0",transparency="innerTransparency+0",colour2="middleColour2+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  34.         [6] = {x="width+19", y=11, width=1, height="height+00",colour="middleColour+0",transparency="innerTransparency+0",colour2="middleColour2+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)}
  35.     },
  36.     ["top_left"] = {
  37.         [1] = {x=8,y=2,width=3,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  38.         [2] = {x=6,y=3,width=2,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  39.         [3] = {x=4,y=5,width=1,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  40.         [4] = {x=5,y=4,width=1,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  41.         [5] = {x=3,y=6,width=1,height=2,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  42.         [6] = {x=2,y=8,width=1,height=3,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)}
  43.     },
  44.     ["top"] =  {
  45.         [1] = {x=11,y=1,width="width+0",height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)}
  46.     },
  47.     ["top_right"] = {
  48.         [1] = {x="width+11",y=2,width=3,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  49.         [2] = {x="width+14",y=3,width=2,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  50.         [3] = {x="width+16",y=4,width=1,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  51.         [4] = {x="width+17",y=5,width=1,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  52.         [5] = {x="width+18",y=6,width=1,height=2,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  53.         [6] = {x="width+19",y=8,width=1,height=3,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)}
  54.     },
  55.     ["left"] = {
  56.         [1] = {x=1,y=11,width=1,height="height+0",colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)}
  57.     },
  58.     ["right"] = {
  59.         [1] = {x="width+20",y=11,width=1,height="height+0",colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)}
  60.     },
  61.     ["bottom_left"] = {
  62.         [1] = {x=2,y="height+11",width=1,height=3,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  63.         [2] = {x=3,y="height+14",width=1,height=2,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  64.         [3] = {x=4,y="height+16",width=1,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  65.         [4] = {x=5,y="height+17",width=1,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  66.         [5] = {x=6,y="height+18",width=2,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  67.         [6] = {x=8,y="height+19",width=3,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)}
  68.     },
  69.     ["bottom"] = {
  70.         [1] = {x=11,y="height+20",width="width+0",height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)}
  71.     },
  72.     ["bottom_right"] = {
  73.         [1] = {x="width+19",y="height+11",width=1,height=3,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  74.         [2] = {x="width+18",y="height+14",width=1,height=2,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  75.         [3] = {x="width+17",y="height+16",width=1,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  76.         [4] = {x="width+16",y="height+17",width=1,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  77.         [5] = {x="width+14",y="height+18",width=2,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)},
  78.         [6] = {x="width+11",y="height+19",width=3,height=1,colour="lineColour+0",transparency="lineTransparency+0",colour2="lineColour+0",transparency2="innerTransparency2+0",obj=p.addBox(0,0,0,0,0,0)}
  79.     }
  80. }
  81. function renderGroup(groupName)
  82.     group = groups[groupName]
  83.     for key, object in pairs(group) do
  84.         if type(object["x"]) == "number" then
  85.             object["obj"].setX(object["x"])
  86.         elseif type(object["x"]) == "string" then
  87.             t = {}
  88.             for k, v in string.gmatch(object["x"], "(%w+)+(%w+)") do
  89.                 t[1] = k
  90.                 t[2] = v
  91.             end
  92.             object["obj"].setX(tonumber(variables[t[1]])+tonumber(t[2]))
  93.         end
  94.         if type(object["y"]) == "number" then
  95.             object["obj"].setY(object["y"])
  96.         elseif type(object["y"]) == "string" then
  97.             t = {}
  98.             for k, v in string.gmatch(object["y"], "(%w+)+(%w+)") do
  99.                 t[1] = k
  100.                 t[2] = v
  101.             end
  102.             object["obj"].setY(tonumber(variables[t[1]])+tonumber(t[2]))
  103.         end
  104.         if type(object["width"]) == "number" then
  105.             object["obj"].setWidth(object["width"])
  106.         elseif type(object["width"]) == "string" then
  107.             t = {}
  108.             for k, v in string.gmatch(object["width"], "(%w+)+(%w+)") do
  109.                 t[1] = k
  110.                 t[2] = v
  111.             end
  112.             object["obj"].setWidth(tonumber(variables[t[1]])+tonumber(t[2]))
  113.         end
  114.         if type(object["height"]) == "number" then
  115.             object["obj"].setHeight(object["height"])
  116.         elseif type(object["height"]) == "string" then
  117.             t = {}
  118.             for k, v in string.gmatch(object["height"], "(%w+)+(%w+)") do
  119.                 t[1] = k
  120.                 t[2] = v
  121.             end
  122.             object["obj"].setHeight(tonumber(variables[t[1]])+tonumber(t[2]))
  123.         end
  124.         if type(object["colour"]) == "number" then
  125.             object["obj"].setColor(object["colour"])
  126.         elseif type(object["colour"]) == "string" then
  127.             t = {}
  128.             for k, v in string.gmatch(object["colour"], "(%w+)+(%w+)") do
  129.                 t[1] = k
  130.                 t[2] = v
  131.             end
  132.             object["obj"].setColor(tonumber(variables[t[1]])+tonumber(t[2]))
  133.         end
  134.         if type(object["transparency"]) == "number" then
  135.             object["obj"].setOpacity(object["transparency"])
  136.         elseif type(object["transparency"]) == "string" then
  137.             t = {}
  138.             for k, v in string.gmatch(object["transparency"], "(%w+)+(%w+)") do
  139.                 t[1] = k
  140.                 t[2] = v
  141.             end
  142.             object["obj"].setOpacity(tonumber(variables[t[1]])+tonumber(t[2]))
  143.         end
  144.         if type(object["colour2"]) == "number" then
  145.             object["obj"].setColor2(object["colour"])
  146.         elseif type(object["colour2"]) == "string" then
  147.             t = {}
  148.             for k, v in string.gmatch(object["colour2"], "(%w+)+(%w+)") do
  149.                 t[1] = k
  150.                 t[2] = v
  151.             end
  152.             object["obj"].setColor2(tonumber(variables[t[1]])+tonumber(t[2]))
  153.         end
  154.         if type(object["transparency2"]) == "number" then
  155.             object["obj"].setOpacity2(object["transparency"])
  156.         elseif type(object["transparency2"]) == "string" then
  157.             t = {}
  158.             for k, v in string.gmatch(object["transparency"], "(%w+)+(%w+)") do
  159.                 t[1] = k
  160.                 t[2] = v
  161.             end
  162.             object["obj"].setOpacity2(tonumber(variables[t[1]])+tonumber(t[2]))
  163.         end
  164.     end
  165. end
  166. function redraw()
  167.     for key,value in pairs(groups) do
  168.         renderGroup(key)
  169.     end
  170. end
  171. redraw()
  172. while true do
  173.     evt,command = os.pullEvent("chat_command")
  174.     words = {}
  175.     i = 0
  176.     for word in string.gmatch(command, "%S+") do
  177.         words[i] = word
  178.         i = i + 1
  179.     end
  180.     if string.lower(words[0]) == "width" then
  181.         variables["width"] = tonumber(words[1])
  182.         redraw()
  183.     elseif string.lower(words[0]) == "height" then
  184.         variables["height"] = tonumber(words[1])
  185.         redraw()
  186.     elseif string.lower(words[0]) == "linecolour" then
  187.         variables["lineColour"] = tonumber(words[1])
  188.         redraw()
  189.     elseif string.lower(words[0]) == "middlecolour" then
  190.         variables["middleColour"] = tonumber(words[1])
  191.         redraw()
  192.     elseif string.lower(words[0]) == "linetransparency" then
  193.         variables["lineTransparency"] = tonumber(words[1])
  194.         redraw()
  195.     elseif string.lower(words[0]) == "middletransparency" then
  196.         variables["innerTransparency"] = tonumber(words[1])
  197.         redraw()
  198.     elseif string.lower(words[0]) == "stop" then
  199.         p.clear()
  200.         break
  201.     end
  202. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement