diff options
| author | Chris B <1029chris@gmail.com> | 2016-03-09 18:42:52 -0800 |
|---|---|---|
| committer | Chris B <1029chris@gmail.com> | 2016-03-09 18:42:52 -0800 |
| commit | f09675cc51658532024e0aa53bf091fc7dbc0131 (patch) | |
| tree | 9cbf4a7c466073ccb824c19848e31c6672c63c25 | |
| parent | eb217a6eca0bb18b38a7bba2459643b64e2f8c6f (diff) | |
Optimized layers and panels
| -rw-r--r-- | panel.lua | 2 | ||||
| -rw-r--r-- | system.lua | 10 | ||||
| -rw-r--r-- | var.lua | 15 | ||||
| -rw-r--r-- | window.lua | 124 |
4 files changed, 22 insertions, 129 deletions
@@ -1,6 +1,6 @@ function drawPanelButton(id) love.graphics.setColor(150, 150, 150) - if panel.b[id] ~= 0 then + if panel.b[id] ~= nil then if layer[1] == panel.b[id] and win[panel.b[id]].min == false then drawDownBox(panel.s.x+72+(panel.s.dis*id-panel.s.dis), panel.s.y, panel.s.width*2.75, panel.s.height, 2) else @@ -1,7 +1,5 @@ function drawLayer(id) - if layer[id] ~= 0 then - love.graphics.draw(win[layer[id]].cvs, win[layer[id]].x, win[layer[id]].y, 0, win[layer[id]].s) - end + love.graphics.draw(win[layer[id]].cvs, win[layer[id]].x, win[layer[id]].y, 0, win[layer[id]].s) end function updateSystem(dt) timeNoti(dt) @@ -28,16 +26,14 @@ function drawSystem() if start.o == true and sys.mouse.p.p == true and sys.mouse.p.x > 255 or sys.mouse.p.y < sys.h-380 then start.o = false end - for i=1,7 do - drawLayer(8-i) + for i=1,#layer do + drawLayer((#layer+1)-i) end drawStart() if start.o == true then drawMenu() end drawNoti() - --love.graphics.print(layer[1] .. layer[2] .. layer[3] .. layer[4] .. layer[5] .. layer[6] .. layer[7]) - --love.graphics.print(win[1].layer .. win[2].layer .. win[3].layer .. win[4].layer .. win[5].layer .. win[6].layer, 0, 20) if fade == 0 and fadeOpacity ~= 0 then love.graphics.setColor(0, 0, 0, fadeOpacity) love.graphics.rectangle("fill", 0, 0, sys.w, sys.h) @@ -23,6 +23,7 @@ function loadWin(id, w, h, title, ico, ico16) win[id].icon16 = ico16 win[id].exit = true win[id].bar = "grey" + win[id].pan = 0 end function loadVar() sys = {} @@ -52,13 +53,6 @@ function loadVar() panel.s.activate = false panel.s.dis = 185 panel.b = {} - panel.b[1] = 0 - panel.b[2] = 0 - panel.b[3] = 0 - panel.b[4] = 0 - panel.b[5] = 0 - panel.b[6] = 0 - panel.b[7] = 0 test = false win = {} loadWin(1, 250, 400, "Chat", icons[32].chat, icons[16].chat) @@ -77,13 +71,6 @@ function loadVar() start.x = 0 start.y = 600-30-350+2 layer = {} - layer[1] = 0 - layer[2] = 0 - layer[3] = 0 - layer[4] = 0 - layer[5] = 0 - layer[6] = 0 - layer[7] = 0 layer.sentToFront = 0 desktop.bg.current = 0 fade = 0 @@ -125,41 +125,10 @@ function drawWindow(id) end function orderWindows() if layer.sentToFront ~= 0 and layer[1] ~= layer.sentToFront then - if win[layer.sentToFront].oldlayer == 2 then - layer[2] = layer[1] - layer[1] = id - elseif win[layer.sentToFront].oldlayer == 3 then - layer[3] = layer[2] - layer[2] = layer[1] - layer[1] = id - elseif win[layer.sentToFront].oldlayer == 4 then - layer[4] = layer[3] - layer[3] = layer[2] - layer[2] = layer[1] - layer[1] = id - elseif win[layer.sentToFront].oldlayer == 5 then - layer[5] = layer[4] - layer[4] = layer[3] - layer[3] = layer[2] - layer[2] = layer[1] - layer[1] = id - elseif win[layer.sentToFront].oldlayer == 6 then - layer[6] = layer[5] - layer[5] = layer[4] - layer[4] = layer[3] - layer[3] = layer[2] - layer[2] = layer[1] - layer[1] = id - else - layer[7] = layer[6] - layer[6] = layer[5] - layer[5] = layer[4] - layer[4] = layer[3] - layer[3] = layer[2] - layer[2] = layer[1] - layer[1] = id - end - layer[1] = layer.sentToFront + if win[layer.sentToFront].layer ~= 0 then + table.remove(layer, win[layer.sentToFront].layer) + end + table.insert(layer, 1, layer.sentToFront) win[layer.sentToFront].oldlayer = win[layer.sentToFront].layer win[layer.sentToFront].layer = 1 layer.sentToFront = 0 @@ -167,30 +136,6 @@ function orderWindows() for i=1,6 do closeWindow(7-i) end - if layer[6] == 0 and layer[7] ~= 0 then - layer[6] = layer[7] - layer[7] = 0 - end - if layer[5] == 0 and layer[6] ~= 0 then - layer[5] = layer[6] - layer[6] = 0 - end - if layer[4] == 0 and layer[5] ~= 0 then - layer[4] = layer[5] - layer[5] = 0 - end - if layer[3] == 0 and layer[4] ~= 0 then - layer[3] = layer[4] - layer[4] = 0 - end - if layer[2] == 0 and layer[3] ~= 0 then - layer[2] = layer[3] - layer[3] = 0 - end - if layer[1] == 0 and layer[2] ~= 0 then - layer[1] = layer[2] - layer[2] = 0 - end for i=1,6 do setWindow(7-i) setPanel(7-i) @@ -198,59 +143,24 @@ function orderWindows() end end function setWindow(id) - if layer[id] ~= 0 then + if layer[id] ~= nil then win[layer[id]].oldlayer = win[layer[id]].layer win[layer[id]].layer = id end end function setPanel(id) - if win[id].ex == false then - if panel.b[1] == 0 then - panel.b[1] = id - elseif panel.b[2] == 0 and panel.b[1] ~= id then - panel.b[2] = id - elseif panel.b[3] == 0 and panel.b[1] ~= id and panel.b[2] ~= id then - panel.b[3] = id - elseif (panel.b[4] == 0 and panel.b[1] ~= id and panel.b[2] ~= id - and panel.b[3] ~= id) then - panel.b[4] = id - elseif (panel.b[5] == 0 and panel.b[1] ~= id and panel.b[2] ~= id - and panel.b[3] ~= id and panel.b[4] ~= id) then - panel.b[5] = id - elseif (panel.b[6] == 0 and panel.b[1] ~= id and panel.b[2] ~= id - and panel.b[3] ~= id and panel.b[4] ~= id and panel.b[5] ~= id) then - panel.b[6] = id + if win[id].ex == false and win[id].pan == 0 then + table.insert(panel.b, id) + win[id].pan = #panel.b + end + if win[id].ex == true and win[id].pan ~= 0 then + table.remove(panel.b, win[id].panel) + for i=1,#panel.b do + if panel.b[i] == id then + table.remove(panel.b, i) + end end - end - if win[id].ex == true then - if panel.b[1] == id then - panel.b[1] = panel.b[2] - panel.b[2] = panel.b[3] - panel.b[3] = panel.b[4] - panel.b[4] = panel.b[5] - panel.b[5] = panel.b[6] - panel.b[6] = panel.b[7] - elseif panel.b[2] == id then - panel.b[2] = panel.b[3] - panel.b[3] = panel.b[4] - panel.b[4] = panel.b[5] - panel.b[5] = panel.b[6] - panel.b[6] = panel.b[7] - elseif panel.b[3] == id then - panel.b[3] = panel.b[4] - panel.b[4] = panel.b[5] - panel.b[5] = panel.b[6] - panel.b[6] = panel.b[7] - elseif panel.b[4] == id then - panel.b[4] = panel.b[5] - panel.b[5] = panel.b[6] - panel.b[6] = panel.b[7] - elseif panel.b[5] == id then - panel.b[5] = panel.b[6] - panel.b[6] = panel.b[7] - elseif panel.b[6] == id then - panel.b[6] = panel.b[7] - end + win[id].pan = 0 end end function closeWindow(id) @@ -261,7 +171,7 @@ function closeWindow(id) win[id].exit = false end if win[id].layer ~= 0 and win[id].exit == true then - layer[win[id].layer] = 0 + table.remove(layer, win[id].layer) win[id].oldlayer = win[id].layer win[id].layer = 0 end |
