Files
itgmania212121/Themes/default/Graphics/ScreenPlayerOptions PlayerNameplate.lua
T

94 lines
2.9 KiB
Lua

local PlayerNumber = ...
assert( PlayerNumber )
local bpm_text_zoom = 0.875
local song_bpms= {}
local bpm_text= "??? - ???"
local function format_bpm(bpm)
return ("%.0f"):format(bpm)
end
-- Courses don't have GetDisplayBpms.
if GAMESTATE:GetCurrentSong() then
song_bpms= GAMESTATE:GetCurrentSong():GetDisplayBpms()
song_bpms[1]= math.round(song_bpms[1])
song_bpms[2]= math.round(song_bpms[2])
if song_bpms[1] == song_bpms[2] then
bpm_text= format_bpm(song_bpms[1])
else
bpm_text= format_bpm(song_bpms[1]) .. " - " .. format_bpm(song_bpms[2])
end
end
local t = Def.ActorFrame {
LoadActor(THEME:GetPathB("_frame","3x1"),"rounded fill", 192-8) .. {
OnCommand=cmd(diffuse,color("#333333");diffusealpha,0.875);
};
LoadActor(THEME:GetPathB("_frame","3x1"),"rounded gloss", 192-8) .. {
OnCommand=cmd(diffusealpha,0.125);
};
LoadFont("Common Normal") .. {
Text=ToEnumShortString(PlayerNumber);
Name="PlayerShortName",
InitCommand=cmd(x,-104;maxwidth,32),
OnCommand=cmd(diffuse,PlayerColor(PlayerNumber);shadowlength,1)
},
LoadFont("Common Normal") .. {
Text=bpm_text;
Name="BPMRangeOld",
InitCommand=cmd(x,-40;maxwidth,88/bpm_text_zoom),
OnCommand=cmd(shadowlength,1;zoom,bpm_text_zoom)
},
LoadActor(THEME:GetPathG("_StepsDisplayListRow","arrow")) .. {
Name="Seperator",
InitCommand=cmd(x,14)
},
LoadFont("Common Normal") .. {
Text="100 - 200000";
Name="BPMRangeNew",
InitCommand= function(self)
self:x(68):maxwidth(88/bpm_text_zoom):shadowlength(1):zoom(bpm_text_zoom)
local speed, mode= GetSpeedModeAndValueFromPoptions(PlayerNumber)
self:playcommand("SpeedChoiceChanged", {pn= PlayerNumber, mode= mode, speed= speed})
end,
BPMWillNotChangeCommand=cmd(stopeffect),
BPMWillChangeCommand=cmd(diffuseshift;effectcolor1,Color.White;effectcolor2,Color.Orange),
SpeedChoiceChangedMessageCommand= function(self, param)
if param.pn ~= PlayerNumber then return end
local text= ""
local no_change= true
if param.mode == "x" then
if not song_bpms[1] then
text= "??? - ???"
elseif song_bpms[1] == song_bpms[2] then
text= format_bpm(song_bpms[1] * param.speed*.01)
else
text= format_bpm(song_bpms[1] * param.speed*.01) .. " - " ..
format_bpm(song_bpms[2] * param.speed*.01)
end
no_change= param.speed == 100
elseif param.mode == "C" then
text= param.mode .. param.speed
no_change= param.speed == song_bpms[2] and song_bpms[1] == song_bpms[2]
else
no_change= param.speed == song_bpms[2]
if song_bpms[1] == song_bpms[2] then
text= param.mode .. param.speed
else
local factor= song_bpms[1] / song_bpms[2]
text= param.mode .. format_bpm(param.speed * factor) .. " - "
.. param.mode .. param.speed
end
end
self:settext(text)
if no_change then
self:queuecommand("BPMWillNotChange")
else
self:queuecommand("BPMWillChange")
end
end
}
}
return t