Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactoring theme.lua #1168

Merged
merged 3 commits into from
Nov 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion parts/gameFuncs.lua
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ do-- function applySettings()
BG.set()
if SETTING.lockBG then
BG.lock()
elseif reason=='lockBG' then -- Don't load theme too soon!
elseif reason=='lockBG' then -- We only reload theme again when at settings scene.
THEME.set(THEME.calculate(),GAME.playing)
end
elseif SETTING.bg=='off' then
Expand Down
90 changes: 43 additions & 47 deletions parts/theme.lua
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ function THEME.calculate(Y,M,D)
Y,M,D=os.date('%Y'),os.date('%m'),os.date('%d')
end
-- Festival calculate within one statement
return
if not SETTING.noTheme then return
-- Christmas
M=='12' and math.abs(D-25)<4 and
'xmas' or
Expand Down Expand Up @@ -51,58 +51,54 @@ function THEME.calculate(Y,M,D)
(M=='03' or M=='04' or M=='05' or M=='06') and 'zday1' or
(M=='07' or M=='08' or M=='09' or M=='10') and 'zday2' or
(M=='11' or M=='12' or M=='01' or M=='02') and 'zday3'
) or

-- Normal
(
(M=='02' or M=='03' or M=='04') and 'season1' or
(M=='05' or M=='06' or M=='07') and 'season2' or
(M=='08' or M=='09' or M=='10') and 'season3' or
(M=='11' or M=='12' or M=='01') and 'season4'
)
end

-- If there is theme and theme is enabled, then we will never reach here
return -- Normal
(
(M=='02' or M=='03' or M=='04') and 'season1' or
(M=='05' or M=='06' or M=='07') and 'season2' or
(M=='08' or M=='09' or M=='10') and 'season3' or
(M=='11' or M=='12' or M=='01') and 'season4'
)
end

function THEME.set(theme,keepBGM,force)
if type(theme)=='string' and theme:sub(1,6)=='season' then
---@param theme string
---@param keepBGM boolean|false|nil
function THEME.set(theme,keepBGM)
if type(theme)~='string' then
return
elseif theme:sub(1,6)=='season' then
BG.setDefault(SETTING.defaultBG)
BGM.setDefault(({season1='null',season2='nil',season3='vacuum',season4='space'})[theme])
elseif not SETTING.noTheme or force then
if theme=='xmas' then
BG.setDefault('snow')
BGM.setDefault('xmas')
MES.new('info',"==Merry Christmas==")
elseif theme=='birth' then
BG.setDefault('firework')
BGM.setDefault('magicblock')
elseif theme=='sprfes' then
BG.setDefault('firework')
BGM.setDefault('spring festival')
MES.new('info',"★☆新年快乐☆★")
elseif theme=='halloween' then
BG.setDefault('glow')
BGM.setDefault('antispace')
MES.new('info',">>Happy halloween<<")
elseif theme=='zday1' then
BG.setDefault('lanterns')
BGM.setDefault('overzero')
elseif theme=='zday2' then
BG.setDefault('lanterns')
BGM.setDefault('jazz nihilism')
elseif theme=='zday3' then
BG.setDefault('lanterns')
BGM.setDefault('empty')
elseif theme=='fool' then
BG.setDefault('blockrain')
BGM.setDefault('how feeling')
elseif theme=='edm' then
BG.setDefault('lightning2')
BGM.setDefault('malate')
MES.new('music'," 红 色 电 音\n 极 地 大 冲 击\n 只要你敢触电——\n 7月14日、15日 天地人间完全放电\n不用麻醉,一样情不自禁HI起来,飞起来")
else
return
end
elseif theme=='xmas' then
BG.setDefault('snow')
BGM.setDefault('xmas')
MES.new('info',"==Merry Christmas==")
elseif theme=='birth' then
BG.setDefault('firework')
BGM.setDefault('magicblock')
elseif theme=='sprfes' then
BG.setDefault('firework')
BGM.setDefault('spring festival')
MES.new('info',"★☆新年快乐☆★")
elseif theme=='halloween' then
BG.setDefault('glow')
BGM.setDefault('antispace')
MES.new('info',">>Happy halloween<<")
elseif theme:sub(1,4)=='zday' then
BG.setDefault('lanterns')
BGM.setDefault(({zday1='overzero',zday2='jazz nihilism',zday3='empty'})[theme])
elseif theme=='fool' then
BG.setDefault('blockrain')
BGM.setDefault('how feeling')
elseif theme=='edm' then
BG.setDefault('lightning2')
BGM.setDefault('malate')
MES.new('music'," 红 色 电 音\n 极 地 大 冲 击\n 只要你敢触电——\n 7月14日、15日 天地人间完全放电\n不用麻醉,一样情不自禁HI起来,飞起来")
else
return THEME.set(THEME.calculate('0',os.date('%m'),'0'),keepBGM,true)
return
end

THEME.cur=theme
Expand Down
Loading