your-own-drum/options.lua

139 lines
2.4 KiB
Lua

local love = love
local draw = love.draw
local update = love.update
local mousepressed = love.mousepressed
local keypressed = love.keypressed
local mousemoved = love.mousemoved
local function Restore()
love.mousemoved = mousemoved
love.keypressed = keypressed
love.mousepressed = mousepressed
love.update = update
love.draw = draw
end
local options = options
local optionList = {}
options.isHighContrast = false
options.keyBinds = {}
local font = love.graphics.newFont( 32 )
local keyBindCallback = function(self, code)
self.value = code
options.keyBinds[self.name] = code
end
options.optionValues = {
{ name = "options",
value = "back",
callback = function(self)
return Restore()
end
},
{ name = "high contrast",
value = false,
callback = function(self)
self.value = true
end
},
{ name = "volume",
value = 1.0,
callback = function(self, isIncreasing)
self.value = math.max( 0, math.min( 1,
self.value + (isIncreasing and 0.05 or -0.05 )))
end
},
{ name = "left",
value = "a",
callback = keyBindCallback
},
{ name = "right",
value = "d",
callback = keyBindCallback
},
{ name = "up",
value = "w",
callback = keyBindCallback
},
{ name = "down",
value = "s",
callback = keyBindCallback
}
}
local function SetKeyBind( dir, code )
end
local optionIdx
local function Draw()
love.graphics.setColor( 1,1,1,1 )
for i, option in ipairs( options.optionValues ) do
love.graphics.printf( option.name, font, 100, i * 50, 1000, "left")
love.graphics.printf( tostring( option.value ), font, -100, i * 50, love.graphics.getWidth(), "right")
end
end
local function Update()
end
local function ToggleSelectedOption()
end
local function MousePress()
end
local function KeyPress(key, code, isRepeat)
print( code )
if code == "backspace" then return Restore() end
if code == "down" then return SelectNextOption() end
if code == "up" then return SelectPreviousOption() end
if code == "left" then return ShrinkOptionValue() end
if code == "right" then return GrowOptionValue() end
end
love.draw = Draw
love.keypressed = KeyPress
--[[function love.draw()
love.graphics.print( "a" )
end
function love.update()
end]]
--[[love.mousepressed = function()
end
love.draw = function()
end
love.update = function()
end
love.keypressed = function()
end
love.mousemoved = function()
end]]