Code formatting and comments across the board.
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
-- Imports
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
local love = require 'love'
|
||||
local love = require 'love'
|
||||
local make_class = require 'src.utils.classes'
|
||||
|
||||
|
||||
@@ -18,16 +18,16 @@ local Fader = make_class()
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
function Fader:_init()
|
||||
self.t = 0.0
|
||||
self.step = 0
|
||||
self.done = true
|
||||
self.reverse = false
|
||||
self.t = 0.0
|
||||
self.step = 0
|
||||
self.done = true
|
||||
self.reverse = false
|
||||
self.callback = nil
|
||||
end
|
||||
|
||||
|
||||
function Fader:_reset()
|
||||
self.t = 0
|
||||
self.t = 0
|
||||
self.step = 0
|
||||
self.done = false
|
||||
end
|
||||
@@ -35,14 +35,14 @@ end
|
||||
|
||||
function Fader:fade_in(callback)
|
||||
self:_reset()
|
||||
self.reverse = true
|
||||
self.reverse = true
|
||||
self.callback = callback
|
||||
end
|
||||
|
||||
|
||||
function Fader:fade_out(callback)
|
||||
self:_reset()
|
||||
self.reverse = false
|
||||
self.reverse = false
|
||||
self.callback = callback
|
||||
end
|
||||
|
||||
@@ -53,11 +53,12 @@ function Fader:update(dt)
|
||||
|
||||
if self.t >= 0.009 then
|
||||
self.step = self.step + 1
|
||||
self.t = 0.0
|
||||
self.t = 0.0
|
||||
end
|
||||
|
||||
if self.step > 175 then
|
||||
self.done = true
|
||||
|
||||
if self.callback ~= nil then
|
||||
self.callback()
|
||||
self.callback = nil
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
-- From https://stackoverflow.com/a/19327160
|
||||
-- Cargo cult programming ahoy!!
|
||||
local function magiclines( str )
|
||||
local pos
|
||||
pos = 1
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
-- Imports
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
local love = require 'love'
|
||||
local love = require 'love'
|
||||
local magiclines = require 'src.utils.mgclines'
|
||||
|
||||
|
||||
@@ -18,15 +18,16 @@ local SETTINGS_PATH = 'settings.ini'
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
local settings = {
|
||||
permadeath=true,
|
||||
forward='w',
|
||||
backward='s',
|
||||
stepleft='a',
|
||||
stepright='d',
|
||||
turnleft='q',
|
||||
turnright='e',
|
||||
musicvol=75,
|
||||
soundvol=100,
|
||||
-- Default setting values.
|
||||
permadeath = true,
|
||||
forward = 'w',
|
||||
backward = 's',
|
||||
stepleft = 'a',
|
||||
stepright = 'd',
|
||||
turnleft = 'q',
|
||||
turnright = 'e',
|
||||
musicvol = 75,
|
||||
soundvol = 100,
|
||||
}
|
||||
|
||||
|
||||
@@ -35,11 +36,16 @@ local settings = {
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
function settings:_parse_settings_str(s)
|
||||
-- For each line in the data string.
|
||||
for line in magiclines(s) do
|
||||
-- Check if the line matches a key=value pair
|
||||
local k, v = string.match(line, '(%w+)=(.+)')
|
||||
|
||||
if k and v then
|
||||
-- If the line matches then check if it has a known settings key.
|
||||
if self[k] ~= nil then
|
||||
-- If the key is valid then cast the value to it's expected data type and store it.
|
||||
-- Fail if the cast is not doable.
|
||||
if v == 'true' then
|
||||
if type(self[k]) ~= 'boolean' then error(string.format('Invalid value for %s in settings', k)) end
|
||||
self[k] = true
|
||||
@@ -53,6 +59,7 @@ function settings:_parse_settings_str(s)
|
||||
self[k] = v
|
||||
end
|
||||
else
|
||||
-- Fail on an unknown key.
|
||||
error(string.format('Unknown settings key "%s"', k))
|
||||
end
|
||||
end
|
||||
@@ -61,10 +68,14 @@ end
|
||||
|
||||
|
||||
function settings:_get_settings_str()
|
||||
-- Start with the settings category.
|
||||
local s = '[settings]\n'
|
||||
|
||||
-- For each value in the settings table.
|
||||
for k, v in pairs(self) do
|
||||
-- If the value isn't a function then it is a setting.
|
||||
if type(v) ~= 'function' then
|
||||
-- Format the value as key=value.
|
||||
s = s .. string.format('%s=%s\n', k, v)
|
||||
end
|
||||
end
|
||||
@@ -75,13 +86,16 @@ end
|
||||
|
||||
function settings:_open_or_create()
|
||||
if not love.filesystem.exists(SETTINGS_PATH) then
|
||||
-- If the settings file doesn't exist then create it with the default values.
|
||||
local setts = self:_get_settings_str()
|
||||
love.filesystem.write(SETTINGS_PATH, setts)
|
||||
return setts
|
||||
else
|
||||
if not love.filesystem.isFile(SETTINGS_PATH) then
|
||||
-- Fail if the settings path points to a directory.
|
||||
error ("Settings path exists and isn't a file")
|
||||
else
|
||||
-- Else read the settings.
|
||||
return love.filesystem.read(SETTINGS_PATH)
|
||||
end
|
||||
end
|
||||
@@ -93,6 +107,7 @@ end
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
function settings:load_settings()
|
||||
-- Obtain the settings data and parse it.
|
||||
local s = self:_open_or_create()
|
||||
self:_parse_settings_str(s)
|
||||
end
|
||||
@@ -100,8 +115,10 @@ end
|
||||
|
||||
function settings:save_settings()
|
||||
if not love.filesystem.exists(SETTINGS_PATH) or love.filesystem.isFile(SETTINGS_PATH) then
|
||||
-- If the settings file doesn't exist or it exists and is a file then save the current data.
|
||||
love.filesystem.write(SETTINGS_PATH, self:_get_settings_str())
|
||||
else
|
||||
-- Fail if the settings path points to a directory.
|
||||
error("Settings path exists and isn't a file")
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user