99 lines
1.9 KiB
Lua
99 lines
1.9 KiB
Lua
-- from scratch, with various references.
|
|
local Noteskin = ... or {};
|
|
|
|
-- element redirs
|
|
Noteskin.ElementRedirs = {
|
|
-- ["element"] = "redir_element";
|
|
};
|
|
|
|
-- button redirs (since this is a bar noteskin, it's all the same)
|
|
Noteskin.ButtonRedirs = {
|
|
-- dance
|
|
Left = "Bar";
|
|
UpLeft = "Bar";
|
|
Up = "Bar";
|
|
Down = "Bar";
|
|
UpRight = "Bar";
|
|
Right = "Bar";
|
|
-- kb7
|
|
Key1 = "Bar";
|
|
Key2 = "Bar";
|
|
Key3 = "Bar";
|
|
Key4 = "Bar";
|
|
Key5 = "Bar";
|
|
Key6 = "Bar";
|
|
Key7 = "Bar";
|
|
-- pump
|
|
DownLeft = "Bar";
|
|
DownRight = "Bar";
|
|
Center = "Bar";
|
|
};
|
|
|
|
-- things to blank out
|
|
Noteskin.Hide = {
|
|
-- ["element"] = true/false;
|
|
};
|
|
|
|
-- rotations
|
|
Noteskin.BaseRotX = {
|
|
Left = 0;
|
|
UpLeft = 0;
|
|
Up = 0;
|
|
Down = 0;
|
|
UpRight = 0;
|
|
Right = 0;
|
|
};
|
|
Noteskin.BaseRotY = {
|
|
Left = 0;
|
|
UpLeft = 0;
|
|
Up = 0;
|
|
Down = 0;
|
|
UpRight = 0;
|
|
Right = 0;
|
|
};
|
|
|
|
local function NoteskinLoader()
|
|
local Button = Var "Button"
|
|
local Element = Var "Element"
|
|
|
|
if Noteskin.Hide[Element] then
|
|
-- Return a blank element. If SpriteOnly is set, we need to return a
|
|
-- sprite; otherwise just return a dummy actor.
|
|
local t;
|
|
if Var "SpriteOnly" then
|
|
t = LoadActor( "_blank" );
|
|
else
|
|
t = Def.Actor {};
|
|
end
|
|
return t .. {
|
|
cmd(visible,false);
|
|
};
|
|
end;
|
|
|
|
-- load element and button, using redirs
|
|
local LoadElement = Noteskin.ElementRedirs[Element]
|
|
if not LoadElement then
|
|
LoadElement = Element;
|
|
end;
|
|
|
|
local LoadButton = Noteskin.ButtonRedirs[Button]
|
|
if not LoadButton then
|
|
LoadButton = Button;
|
|
end;
|
|
|
|
-- get path to thing
|
|
local sPath = NOTESKIN:GetPath( LoadButton, LoadElement );
|
|
|
|
-- make actor
|
|
local t = LoadActor( sPath );
|
|
|
|
-- apply rotation
|
|
t.BaseRotationX=Noteskin.BaseRotX[sButton]
|
|
t.BaseRotationY=Noteskin.BaseRotY[sButton]
|
|
|
|
return t;
|
|
end
|
|
|
|
Noteskin.Load = NoteskinLoader;
|
|
Noteskin.CommonLoad = NoteskinLoader;
|
|
return Noteskin; |