From c370e9ecc28b859c7033656eb69c3b989fb611fa Mon Sep 17 00:00:00 2001 From: Tim Anema Date: Fri, 7 Nov 2014 09:21:41 -0500 Subject: [PATCH] just some reformatting --- conf.lua | 2 +- lib/shaders/glow.glsl | 3 +- main.lua | 346 +++++++++++++++++++++--------------------- 3 files changed, 175 insertions(+), 176 deletions(-) diff --git a/conf.lua b/conf.lua index 87841a8..91544ec 100644 --- a/conf.lua +++ b/conf.lua @@ -32,4 +32,4 @@ function love.conf(t) t.modules.system = true -- Enable the system module (boolean) t.modules.timer = true -- Enable the timer module (boolean) t.modules.window = true -- Enable the window module (boolean) -end \ No newline at end of file +end diff --git a/lib/shaders/glow.glsl b/lib/shaders/glow.glsl index 2b5d456..2e302ce 100644 --- a/lib/shaders/glow.glsl +++ b/lib/shaders/glow.glsl @@ -1,5 +1,4 @@ extern Image glowImage; - extern float glowTime; vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords) { @@ -17,4 +16,4 @@ vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords) { } return vec4(Texel(texture, texture_coords).rgb * glowInfo.r, 1.0); -} \ No newline at end of file +} diff --git a/main.lua b/main.lua index a5bca16..962cda2 100644 --- a/main.lua +++ b/main.lua @@ -15,32 +15,32 @@ exf.current = nil exf.available = {} function love.load() - exf.list = List:new() - exf.smallfont = love.graphics.newFont(love._vera_ttf,12) - exf.bigfont = love.graphics.newFont(love._vera_ttf, 24) - exf.list.font = exf.smallfont + exf.list = List:new() + exf.smallfont = love.graphics.newFont(love._vera_ttf,12) + exf.bigfont = love.graphics.newFont(love._vera_ttf, 24) + exf.list.font = exf.smallfont - exf.bigball = love.graphics.newImage("gfx/love-big-ball.png") + exf.bigball = love.graphics.newImage("gfx/love-big-ball.png") - -- Find available demos. - local files = love.filesystem.getDirectoryItems("examples") + -- Find available demos. + local files = love.filesystem.getDirectoryItems("examples") local n = 0 - for i, v in ipairs(files) do - n = n + 1 - table.insert(exf.available, v); - local file = love.filesystem.newFile(v, love.file_read) - file:open("r") - local contents = love.filesystem.read("examples/" .. v, 100) - local s, e, c = string.find(contents, "Example: ([%a%p ]-)[\r\n]") - file:close(file) - if not c then c = "Untitled" end - local title = exf.getn(n) .. " " .. c .. " (" .. v .. ")" - exf.list:add(title, v) - end + for i, v in ipairs(files) do + n = n + 1 + table.insert(exf.available, v); + local file = love.filesystem.newFile(v, love.file_read) + file:open("r") + local contents = love.filesystem.read("examples/" .. v, 100) + local s, e, c = string.find(contents, "Example: ([%a%p ]-)[\r\n]") + file:close(file) + if not c then c = "Untitled" end + local title = exf.getn(n) .. " " .. c .. " (" .. v .. ")" + exf.list:add(title, v) + end - exf.list:done() - exf.resume() + exf.list:done() + exf.resume() end function love.update(dt) end @@ -49,7 +49,6 @@ function love.keypressed(k) end function love.keyreleased(k) end function love.mousepressed(x, y, b) end function love.mousereleased(x, y, b) end - function exf.empty() end function exf.update(dt) @@ -89,32 +88,32 @@ function exf.keyreleased(k) end function exf.mousepressed(x, y, b) - exf.list:mousepressed(x, y, b) + exf.list:mousepressed(x, y, b) end function exf.mousereleased(x, y, b) - exf.list:mousereleased(x, y, b) + exf.list:mousereleased(x, y, b) end function exf.getn(n) - local s = "" - n = tonumber(n) - local r = n - if r <= 0 then error("Example IDs must be bigger than 0. (Got: " .. r .. ")") end - if r >= 10000 then error("Example IDs must be less than 10000. (Got: " .. r .. ")") end - while r < 1000 do - s = s .. "0" - r = r * 10 - end - s = s .. n - return s + local s = "" + n = tonumber(n) + local r = n + if r <= 0 then error("Example IDs must be bigger than 0. (Got: " .. r .. ")") end + if r >= 10000 then error("Example IDs must be less than 10000. (Got: " .. r .. ")") end + while r < 1000 do + s = s .. "0" + r = r * 10 + end + s = s .. n + return s end function exf.intable(t, e) - for k, v in ipairs(t) do - if v == e then return true end - end - return false + for k, v in ipairs(t) do + if v == e then return true end + end + return false end function exf.start(item, file) @@ -159,27 +158,25 @@ function exf.start(item, file) end function exf.clear() - love.graphics.setBackgroundColor(0,0,0) - love.graphics.setColor(255, 255, 255) + love.graphics.setBackgroundColor(0,0,0) + love.graphics.setColor(255, 255, 255) love.graphics.setLineWidth(1) love.graphics.setLineStyle("smooth") - --love.graphics.setLine(1, "smooth") - --love.graphics.setColorMode("replace") - love.graphics.setBlendMode("alpha") - love.mouse.setVisible(true) + love.graphics.setBlendMode("alpha") + love.mouse.setVisible(true) end function exf.resume() - load = nil - love.update = exf.update - love.draw = exf.draw - love.keypressed = exf.keypressed - love.keyreleased = exf.keyreleased - love.mousepressed = exf.mousepressed - love.mousereleased = exf.mousereleased + load = nil + love.update = exf.update + love.draw = exf.draw + love.keypressed = exf.keypressed + love.keyreleased = exf.keyreleased + love.mousepressed = exf.mousepressed + love.mousereleased = exf.mousereleased - love.mouse.setVisible(true) - love.window.setTitle("LOVE Example Browser") + love.mouse.setVisible(true) + love.window.setTitle("LOVE Example Browser") -- create light world lightWorld = LightWorld({ @@ -197,7 +194,7 @@ function exf.resume() end function inside(mx, my, x, y, w, h) - return mx >= x and mx <= (x+w) and my >= y and my <= (y+h) + return mx >= x and mx <= (x+w) and my >= y and my <= (y+h) end @@ -208,29 +205,29 @@ end List = {} function List:new() - o = {} - setmetatable(o, self) - self.__index = self + o = {} + setmetatable(o, self) + self.__index = self - o.items = {} + o.items = {} o.files = {} - o.x = 50 - o.y = 70 + o.x = 50 + o.y = 70 - o.width = 400 - o.height = 500 + o.width = 400 + o.height = 500 - o.item_height = 23 - o.sum_item_height = 0 + o.item_height = 23 + o.sum_item_height = 0 - o.bar_size = 20 - o.bar_pos = 0 - o.bar_max_pos = 0 - o.bar_width = 15 - o.bar_lock = nil + o.bar_size = 20 + o.bar_pos = 0 + o.bar_max_pos = 0 + o.bar_width = 15 + o.bar_lock = nil - return o + return o end function List:add(item, file) @@ -239,161 +236,164 @@ function List:add(item, file) end function List:done() - self.items.n = #self.items + self.items.n = #self.items - -- Recalc bar size. - self.bar_pos = 0 + -- Recalc bar size. + self.bar_pos = 0 - local num_items = (self.height/self.item_height) - local ratio = num_items/self.items.n - self.bar_size = self.height * ratio - self.bar_max_pos = self.height - self.bar_size - 3 + local num_items = (self.height/self.item_height) + local ratio = num_items/self.items.n + self.bar_size = self.height * ratio + self.bar_max_pos = self.height - self.bar_size - 3 - -- Calculate height of everything. - self.sum_item_height = (self.item_height+1) * self.items.n + 2 + -- Calculate height of everything. + self.sum_item_height = (self.item_height+1) * self.items.n + 2 end function List:hasBar() - return self.sum_item_height > self.height + return self.sum_item_height > self.height end function List:getBarRatio() - return self.bar_pos/self.bar_max_pos + return self.bar_pos/self.bar_max_pos end function List:getOffset() - local ratio = self.bar_pos/self.bar_max_pos - return math.floor((self.sum_item_height-self.height)*ratio + 0.5) + local ratio = self.bar_pos/self.bar_max_pos + return math.floor((self.sum_item_height-self.height)*ratio + 0.5) end function List:update(dt) - if self.bar_lock then - local dy = math.floor(love.mouse.getY()-self.bar_lock.y+0.5) - self.bar_pos = self.bar_pos + dy + if self.bar_lock then + local dy = math.floor(love.mouse.getY()-self.bar_lock.y+0.5) + self.bar_pos = self.bar_pos + dy - if self.bar_pos < 0 then + if self.bar_pos < 0 then self.bar_pos = 0 - elseif self.bar_pos > self.bar_max_pos then + elseif self.bar_pos > self.bar_max_pos then self.bar_pos = self.bar_max_pos - end + end - self.bar_lock.y = love.mouse.getY() - - end + self.bar_lock.y = love.mouse.getY() + end end function List:mousepressed(mx, my, b) - if self:hasBar() then - if b == "l" then + if self:hasBar() then + if b == "l" then local x, y, w, h = self:getBarRect() if inside(mx, my, x, y, w, h) then - self.bar_lock = { x = mx, y = my } + self.bar_lock = { x = mx, y = my } end - end + end - local per_pixel = (self.sum_item_height-self.height)/self.bar_max_pos - local bar_pixel_dt = math.floor(((self.item_height)*3)/per_pixel + 0.5) + local per_pixel = (self.sum_item_height-self.height)/self.bar_max_pos + local bar_pixel_dt = math.floor(((self.item_height)*3)/per_pixel + 0.5) - if b == "wd" then + if b == "wd" then self.bar_pos = self.bar_pos + bar_pixel_dt - if self.bar_pos > self.bar_max_pos then self.bar_pos = self.bar_max_pos end - elseif b == "wu" then + if self.bar_pos > self.bar_max_pos then + self.bar_pos = self.bar_max_pos + end + elseif b == "wu" then self.bar_pos = self.bar_pos - bar_pixel_dt - if self.bar_pos < 0 then self.bar_pos = 0 end - end - end + if self.bar_pos < 0 then + self.bar_pos = 0 + end + end + end - if b == "l" and inside(mx, my, self.x+2, self.y+1, self.width-3, self.height-3) then - local tx, ty = mx-self.x, my + self:getOffset() - self.y - local index = math.floor((ty/self.sum_item_height)*self.items.n) - local i = self.items[index+1] - local f = self.files[index+1] - if f then - exf.start(i, f) - end + if b == "l" and inside(mx, my, self.x+2, self.y+1, self.width-3, self.height-3) then + local tx, ty = mx-self.x, my + self:getOffset() - self.y + local index = math.floor((ty/self.sum_item_height)*self.items.n) + local i = self.items[index+1] + local f = self.files[index+1] + if f then + exf.start(i, f) end + end end function List:mousereleased(x, y, b) - if self:hasBar() then - if b == "l" then + if self:hasBar() then + if b == "l" then self.bar_lock = nil - end - end + end + end end function List:getBarRect() - return - self.x+self.width+2, self.y+1+self.bar_pos, - self.bar_width-3, self.bar_size + return self.x+self.width+2, self.y+1+self.bar_pos, + self.bar_width-3, self.bar_size end function List:getItemRect(i) - return - self.x+2, self.y+((self.item_height+1)*(i-1)+1)-self:getOffset(), - self.width-3, self.item_height + return self.x+2, self.y+((self.item_height+1)*(i-1)+1)-self:getOffset(), + self.width-3, self.item_height end function List:draw() - love.graphics.setLineWidth(2) - love.graphics.setLineStyle("rough") - love.graphics.setFont(self.font) + love.graphics.setLineWidth(2) + love.graphics.setLineStyle("rough") + love.graphics.setFont(self.font) - love.graphics.setColor(48, 156, 225) + love.graphics.setColor(48, 156, 225) - local mx, my = love.mouse.getPosition() + local mx, my = love.mouse.getPosition() - -- Get interval to display. - local start_i = math.floor( self:getOffset()/(self.item_height+1) ) + 1 - local end_i = start_i+math.floor( self.height/(self.item_height+1) ) + 1 - if end_i > self.items.n then end_i = self.items.n end + -- Get interval to display. + local start_i = math.floor( self:getOffset()/(self.item_height+1) ) + 1 + local end_i = start_i+math.floor( self.height/(self.item_height+1) ) + 1 + + if end_i > self.items.n then + end_i = self.items.n + end + love.graphics.setScissor(self.x, self.y, self.width, self.height) - love.graphics.setScissor(self.x, self.y, self.width, self.height) + -- Items. + for i = start_i,end_i do + local x, y, w, h = self:getItemRect(i) + local hover = inside(mx, my, x, y, w, h) - -- Items. - for i = start_i,end_i do - local x, y, w, h = self:getItemRect(i) - local hover = inside(mx, my, x, y, w, h) - - if hover then - love.graphics.setColor(0, 0, 0, 127) - else - love.graphics.setColor(0, 0, 0, 63) - end - - love.graphics.rectangle("fill", x+1, y+i+1, w-3, h) - - if hover then - love.graphics.setColor(255, 255, 255) - else - love.graphics.setColor(255, 255, 255, 127) - end - - local e_id = string.sub(self.items[i], 1, 5) - local e_rest = string.sub(self.items[i], 5) - - love.graphics.print(e_id, x+10, y+i+6) --Updated y placement -- Used to change position of Example IDs - love.graphics.print(e_rest, x+50, y+i+6) --Updated y placement -- Used to change position of Example Titles + if hover then + love.graphics.setColor(0, 0, 0, 127) + else + love.graphics.setColor(0, 0, 0, 63) end - love.graphics.setScissor() + love.graphics.rectangle("fill", x+1, y+i+1, w-3, h) - -- Bar. - if self:hasBar() then - local x, y, w, h = self:getBarRect() - local hover = inside(mx, my, x, y, w, h) - - if hover or self.bar_lock then - love.graphics.setColor(0, 0, 0, 127) - else - love.graphics.setColor(0, 0, 0, 63) - end - love.graphics.rectangle("fill", x, y, w, h) + if hover then + love.graphics.setColor(255, 255, 255) + else + love.graphics.setColor(255, 255, 255, 127) end - -- Border. - love.graphics.setColor(0, 0, 0, 63) - love.graphics.rectangle("line", self.x+self.width, self.y, self.bar_width, self.height) - love.graphics.rectangle("line", self.x, self.y, self.width, self.height) + local e_id = string.sub(self.items[i], 1, 5) + local e_rest = string.sub(self.items[i], 5) + + love.graphics.print(e_id, x+10, y+i+6) --Updated y placement -- Used to change position of Example IDs + love.graphics.print(e_rest, x+50, y+i+6) --Updated y placement -- Used to change position of Example Titles + end + + love.graphics.setScissor() + + -- Bar. + if self:hasBar() then + local x, y, w, h = self:getBarRect() + local hover = inside(mx, my, x, y, w, h) + + if hover or self.bar_lock then + love.graphics.setColor(0, 0, 0, 127) + else + love.graphics.setColor(0, 0, 0, 63) + end + love.graphics.rectangle("fill", x, y, w, h) + end + + -- Border. + love.graphics.setColor(0, 0, 0, 63) + love.graphics.rectangle("line", self.x+self.width, self.y, self.bar_width, self.height) + love.graphics.rectangle("line", self.x, self.y, self.width, self.height) end