ExperimentalGear/scripts/songselect/settingswheel.lua

36 lines
1.2 KiB
Lua
Raw Normal View History

2021-07-25 20:10:06 +02:00
resx,resy = game.GetResolution()
local wheelY = -resy
local bgFade = 0
local yoff = 0
local lastSelected = 0
render = function(deltaTime, shown)
gfx.ResetTransform()
gfx.BeginPath();
gfx.LoadSkinFont("segoeui.ttf");
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER + gfx.TEXT_ALIGN_MIDDLE);
gfx.FontSize(40);
if shown then
bgFade = math.min(bgFade + deltaTime * 10, 1)
wheelY = math.min(wheelY + deltaTime * resy * 10, 0)
else
wheelY = math.max(wheelY - deltaTime * resy * 10, -resy)
bgFade = math.max(bgFade - deltaTime * 10, 0)
end
gfx.FillColor(0,0,0,math.floor(200 * bgFade))
gfx.Rect(0,0,resx,resy)
gfx.Fill()
gfx.BeginPath()
yoff = 0.8 * yoff + (settings.currentSelection - lastSelected)
lastSelected = settings.currentSelection
if bgFade > 0 then
for i,setting in ipairs(settings) do
if i == settings.currentSelection then
gfx.FillColor(255,255,255)
else
gfx.FillColor(70,70,70)
end
gfx.FastText(string.format("%s: %s", setting.name, setting.value), resx/2, resy/2 + 40 * (i - settings.currentSelection + yoff) + wheelY, 40, gfx.TEXT_ALIGN_CENTER + gfx.TEXT_ALIGN_MIDDLE);
end
end
end