refactor and change NoteSkins

This commit is contained in:
Glenn Maynard
2007-02-06 07:56:37 +00:00
parent d2f43893ce
commit ff42847669
54 changed files with 384 additions and 29 deletions
@@ -0,0 +1,38 @@
local t = Def.ActorFrame {
children = {
NOTESKIN:LoadActor( Var "Button", "Hold Explosion" ) .. {
HoldingOnCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "HoldingOnCommand");
HoldingOffCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "HoldingOffCommand");
InitCommand=cmd(playcommand,"HoldingOff";finishtweening);
};
NOTESKIN:LoadActor( Var "Button", "Tap Explosion Dim" ) .. {
InitCommand=cmd(diffusealpha,0);
W5Command=NOTESKIN:GetMetricA("GhostArrowDim", "W5Command");
W4Command=NOTESKIN:GetMetricA("GhostArrowDim", "W4Command");
W3Command=NOTESKIN:GetMetricA("GhostArrowDim", "W3Command");
W2Command=NOTESKIN:GetMetricA("GhostArrowDim", "W2Command");
W1Command=NOTESKIN:GetMetricA("GhostArrowDim", "W1Command");
HeldCommand=NOTESKIN:GetMetricA("GhostArrowDim", "HeldCommand");
JudgmentCommand=cmd(finishtweening);
BrightCommand=cmd(hidden,1);
DimCommand=cmd(hidden,0);
};
NOTESKIN:LoadActor( Var "Button", "Tap Explosion Bright" ) .. {
InitCommand=cmd(diffusealpha,0);
W5Command=NOTESKIN:GetMetricA("GhostArrowBright", "W5Command");
W4Command=NOTESKIN:GetMetricA("GhostArrowBright", "W4Command");
W3Command=NOTESKIN:GetMetricA("GhostArrowBright", "W3Command");
W2Command=NOTESKIN:GetMetricA("GhostArrowBright", "W2Command");
W1Command=NOTESKIN:GetMetricA("GhostArrowBright", "W1Command");
HeldCommand=NOTESKIN:GetMetricA("GhostArrowBright", "HeldCommand");
JudgmentCommand=cmd(finishtweening);
BrightCommand=cmd(hidden,0);
DimCommand=cmd(hidden,1);
};
NOTESKIN:LoadActor( Var "Button", "HitMine Explosion" ) .. {
InitCommand=cmd(blend,"BlendMode_Add";diffusealpha,0);
HitMineCommand=NOTESKIN:GetMetricA("GhostArrowBright", "HitMineCommand");
};
}
}
return t;
@@ -0,0 +1 @@
Fallback Ready Receptor
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

@@ -0,0 +1 @@
Fallback Tap Note
@@ -0,0 +1 @@
Fallback Tap Note
@@ -0,0 +1 @@
_blank
@@ -0,0 +1 @@
_blank
@@ -0,0 +1 @@
_blank
@@ -0,0 +1 @@
_blank
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

@@ -0,0 +1 @@
return LoadActor( NOTESKIN:GetPath("", "_Tap Lead-in Receptor") );
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

@@ -0,0 +1 @@
Fallback Tap Note
@@ -0,0 +1 @@
Fallback Tap Note
@@ -0,0 +1 @@
_blank
@@ -0,0 +1 @@
_blank
@@ -0,0 +1 @@
_blank
@@ -0,0 +1 @@
_blank
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

@@ -0,0 +1,55 @@
local ret = ... or {}
ret.Redir = function(sButton, sElement)
-- To redirect files for Up to Down:
-- if sButton == "Up" then sButton = "Down"; end
return sButton, sElement;
end
ret.Rotate =
{
};
ret.PartsToRotate =
{
};
ret.Blank =
{
-- To blank tap notes:
-- ["tap note"] = true,
};
local function func()
local sButton = Var "Button";
local sElement = Var "Element";
if ret.Blank[sElement] then
-- Return a blank element. If SpriteOnly is set,
-- we need to return a sprite; otherwise just return
-- a dummy actor.
if Var "SpriteOnly" then
local t = LoadActor( "_blank" );
return t;
else
return Def.Actor {};
end
end
local sButtonToLoad, sElementToLoad = ret.Redir(sButton, sElement);
local sPath = NOTESKIN:GetPath( sButtonToLoad, sElementToLoad );
local t = LoadActor( sPath );
if ret.PartsToRotate[sElement] then
t.BaseRotationZ = ret.Rotate[sButton];
end
return t;
end
-- This is the only required function.
ret.Load = func;
return ret;
@@ -0,0 +1,25 @@
return Def.ActorFrame {
children = {
LoadActor( "_Tap Receptor", NOTESKIN:LoadActor(Var "Button", "Ready Receptor") ) .. {
Frame0000=2;
Delay0000=1;
InitCommand=cmd(playcommand, "Set");
GameplayLeadInChangedMessageCommand=cmd(playcommand,"Set");
SetCommand=cmd(visible,GAMESTATE:GetGameplayLeadIn());
};
LoadActor( "_Tap Receptor", NOTESKIN:LoadActor(Var "Button", "Go Receptor") ) .. {
Frame0000=0;
Delay0000=0.1;
Frame0001=1;
Delay0001=0.8;
Frame0002=0;
Delay0002=0.1;
InitCommand=cmd(playcommand, "Set");
GameplayLeadInChangedMessageCommand=cmd(playcommand,"Set");
SetCommand=cmd(visible,not GAMESTATE:GetGameplayLeadIn());
};
}
}
@@ -0,0 +1,9 @@
local File = ...;
return LoadActor( File ) .. {
InitCommand=cmd(playcommand,"Lift");
ReverseOnCommand=NOTESKIN:GetMetricA("Press", "ReverseOnCommand");
ReverseOffCommand=NOTESKIN:GetMetricA("Press", "ReverseOffCommand");
PressCommand=NOTESKIN:GetMetricA("Press", "PressCommand");
LiftCommand=NOTESKIN:GetMetricA("Press", "LiftCommand");
};
@@ -0,0 +1,15 @@
local t = ...;
assert( type(t) == "table" );
return t .. {
InitCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'InitCommand');
MissCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'MissCommand');
NoneCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'NoneCommand');
HitMineCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'HitMineCommand');
W5Command=NOTESKIN:GetMetricA('ReceptorArrow', 'W5Command');
W4Command=NOTESKIN:GetMetricA('ReceptorArrow', 'W4Command');
W3Command=NOTESKIN:GetMetricA('ReceptorArrow', 'W3Command');
W2Command=NOTESKIN:GetMetricA('ReceptorArrow', 'W2Command');
W1Command=NOTESKIN:GetMetricA('ReceptorArrow', 'W1Command');
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 1003 B

@@ -0,0 +1,114 @@
[NoteDisplay]
DrawHoldHeadForTapsOnSameRow=1
TapNoteAnimationLengthInBeats=1
TapMineAnimationLengthInBeats=1
TapLiftAnimationLengthInBeats=1
HoldHeadAnimationLengthInBeats=1
HoldTopCapAnimationLengthInBeats=1
HoldBottomCapAnimationLengthInBeats=1
HoldBodyAnimationLengthInBeats=4
HoldTailAnimationLengthInBeats=4
TapNoteAnimationIsVivid=1
TapMineAnimationIsVivid=0
TapLiftAnimationIsVivid=0
HoldHeadAnimationIsVivid=0
HoldTopCapAnimationIsVivid=0
HoldBodyAnimationIsVivid=0
HoldBottomCapAnimationIsVivid=0
HoldTailAnimationIsVivid=0
TapNoteAdditionTextureCoordOffsetX=0
TapNoteAdditionTextureCoordOffsetY=0
TapNoteNoteColorTextureCoordSpacingX=0
TapNoteNoteColorTextureCoordSpacingY=0
TapMineAdditionTextureCoordOffsetX=0
TapMineAdditionTextureCoordOffsetY=0
TapMineNoteColorTextureCoordSpacingX=0
TapMineNoteColorTextureCoordSpacingY=0
TapLiftAdditionTextureCoordOffsetX=0
TapLiftAdditionTextureCoordOffsetY=0
TapLiftNoteColorTextureCoordSpacingX=0
TapLiftNoteColorTextureCoordSpacingY=0
HoldHeadAdditionTextureCoordOffsetX=0
HoldHeadAdditionTextureCoordOffsetY=0
HoldHeadNoteColorTextureCoordSpacingX=0
HoldHeadNoteColorTextureCoordSpacingY=0
HoldTopCapAdditionTextureCoordOffsetX=0
HoldTopCapAdditionTextureCoordOffsetY=0
HoldTopCapNoteColorTextureCoordSpacingX=0
HoldTopCapNoteColorTextureCoordSpacingY=0
HoldBodyAdditionTextureCoordOffsetX=0
HoldBodyAdditionTextureCoordOffsetY=0
HoldBodyNoteColorTextureCoordSpacingX=0
HoldBodyNoteColorTextureCoordSpacingY=0
HoldBottomCapAdditionTextureCoordOffsetX=0
HoldBottomCapAdditionTextureCoordOffsetY=0
HoldBottomCapNoteColorTextureCoordSpacingX=0
HoldBottomCapNoteColorTextureCoordSpacingY=0
HoldTailAdditionTextureCoordOffsetX=0
HoldTailAdditionTextureCoordOffsetY=0
HoldTailNoteColorTextureCoordSpacingX=0
HoldTailNoteColorTextureCoordSpacingY=0
StartDrawingHoldBodyOffsetFromHead=0
StopDrawingHoldBodyOffsetFromTail=-32 // top of tail
HoldLetGoGrayPercent=0.25
TapNoteUseLighting=0
TapMineUseLighting=0
TapLiftUseLighting=0
HoldHeadUseLighting=0
HoldTailUseLighting=0
ReverseDrawOrder=1101
HoldHeadIsAboveWavyParts=1
HoldTailIsAboveWavyParts=1
FlipHeadAndTailWhenReverse=0
FlipHoldBodyWhenReverse=0
TopHoldAnchorWhenReverse=0
HoldActiveIsAddLayer=0
[GhostArrowDim]
HitMineCommand=blend,"BlendMode_Add";diffuse,1,1,1,1;zoom,1;rotationz,0;linear,0.3;rotationz,90;linear,0.3;rotationz,180;diffusealpha,0
W5Command=diffuse,0.8,0.0,0.6,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W4Command=diffuse,0.3,0.8,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W3Command=diffuse,0.0,1.0,0.4,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W2Command=diffuse,1.0,1.0,0.3,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W1Command=diffuse,1.0,1.0,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
HeldCommand=diffuse,1.0,1.0,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
[GhostArrowBright]
NoneCommand=
HitMineCommand=blend,"BlendMode_Add";diffuse,1,1,1,1;zoom,1;rotationz,0;linear,0.3;rotationz,90;linear,0.3;rotationz,180;diffusealpha,0
AvoidMineCommand=
MissCommand=
W5Command=diffuse,0.8,0.0,0.6,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W4Command=diffuse,0.3,0.8,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W3Command=diffuse,0.0,1.0,0.4,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W2Command=diffuse,1.0,1.0,0.3,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W1Command=diffuse,1.0,1.0,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
HeldCommand=diffuse,1.0,1.0,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
[ReceptorArrow]
InitCommand=effectclock,'beat';diffuseramp;effectcolor1,color("#000000FF");effectcolor2,color("#FFFFFFFF");
# By default, always step. Individual game skins can override this.
NoneCommand=stoptweening;zoom,.75;linear,0.11;zoom,1
HitMineCommand=
AvoidMineCommand=
MissCommand=
W5Command=stoptweening;zoom,.75;linear,0.11;zoom,1
W4Command=stoptweening;zoom,.75;linear,0.11;zoom,1
W3Command=stoptweening;zoom,.75;linear,0.11;zoom,1
W2Command=stoptweening;zoom,.75;linear,0.11;zoom,1
W1Command=stoptweening;zoom,.75;linear,0.11;zoom,1
PressCommand=
LiftCommand=
[HoldGhostArrow]
HoldingOnCommand=hidden,0
HoldingOffCommand=hidden,1
[Press]
ReverseOnCommand=vertalign,bottom
ReverseOffCommand=vertalign,top
PressCommand=hidden,0
LiftCommand=hidden,1
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

@@ -1,3 +1,3 @@
return LoadActor( NOTESKIN:GetPath("", "_Tap Lead-in Receptor"),
NOTESKIN:GetPath("_Down", "Receptor") );
return LoadActor( NOTESKIN:GetPath("", "_Tap Receptor"),
NOTESKIN:LoadActor( Var "Button", "Go Receptor" ) );
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 975 B

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 598 B

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

@@ -1,4 +1,4 @@
return Def.Sprite {
local t = Def.Sprite {
Texture=NOTESKIN:GetPath('_down','tap note');
Frame0000=0;
Delay0000=0.1;
@@ -8,28 +8,5 @@ return Def.Sprite {
Delay0002=0.1;
Frame0003=3;
Delay0003=0.1;
Frame0004=4;
Delay0004=0.1;
Frame0005=5;
Delay0005=0.1;
Frame0006=6;
Delay0006=0.1;
Frame0007=7;
Delay0007=0.1;
Frame0008=8;
Delay0008=0.1;
Frame0009=9;
Delay0009=0.1;
Frame0010=10;
Delay0010=0.1;
Frame0011=11;
Delay0011=0.1;
Frame0012=12;
Delay0012=0.1;
Frame0013=13;
Delay0013=0.1;
Frame0014=14;
Delay0014=0.1;
Frame0015=15;
Delay0015=0.1;
}
};
return t;
@@ -0,0 +1,99 @@
local ret = ... or {};
ret.RedirTable =
{
Up = "Down",
Down = "Down",
Left = "Down",
Right = "Down",
UpLeft = "Down",
UpRight = "Down",
};
local OldRedir = ret.Redir;
ret.Redir = function(sButton, sElement)
sButton, sElement = OldRedir(sButton, sElement);
-- Instead of separate hold heads, use the tap note graphics.
if sElement == "Hold Head Inactive" or
sElement == "Hold Head Active" or
sElement == "Roll Head Inactive" or
sElement == "Roll Head Active"
then
sElement = "Tap Note";
end
sButton = ret.RedirTable[sButton];
return sButton, sElement;
end
-- To have separate graphics for each hold part:
--[[
local OldRedir = ret.Redir;
ret.Redir = function(sButton, sElement)
-- Redirect non-hold, non-roll parts.
if string.find(sElement, "hold") then
return sButton, sElement;
end
return OldRedir(sButton, sElement);
end
]]
local OldFunc = ret.Load;
function ret.Load()
local t = OldFunc();
-- The main "Explosion" part just loads other actors; don't rotate
-- it. The "Hold Explosion" part should not be rotated.
if Var "Element" == "Explosion" or
Var "Element" == "Hold Explosion" then
t.BaseRotationZ = nil;
end
return t;
end
ret.PartsToRotate =
{
["Go Receptor"] = true,
["Ready Receptor"] = true,
["Tap Explosion Bright"] = true,
["Tap Explosion Dim"] = true,
["Tap Note"] = true,
["Hold Head Active"] = true,
["Hold Head Inactive"] = true,
["Roll Head Active"] = true,
["Roll Head Inactive"] = true,
};
ret.Rotate =
{
Up = 180,
Down = 0,
Left = 90,
Right = -90,
UpLeft = 135,
UpRight = 225,
};
--
-- If a derived skin wants to have separate UpLeft graphics,
-- use this:
--
-- ret.RedirTable.UpLeft = "UpLeft";
-- ret.RedirTable.UpRight = "UpLeft";
-- ret.Rotate.UpLeft = 0;
-- ret.Rotate.UpRight = 90;
--
ret.Blank =
{
["Hold Topcap Active"] = true,
["Hold Topcap Inactive"] = true,
["Roll Topcap Active"] = true,
["Roll Topcap Inactive"] = true,
["Hold Tail Active"] = true,
["Hold Tail Inactive"] = true,
["Roll Tail Active"] = true,
["Roll Tail Inactive"] = true,
};
return ret;
Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

+10 -1
View File
@@ -1,4 +1,8 @@
[Global]
#FallbackNoteSkin=common
[NoteDisplay]
TapNoteAnimationIsVivid=0
DrawHoldHeadForTapsOnSameRow=1
TapNoteAnimationLengthInBeats=4
TapAdditionAnimationLengthInBeats=4
@@ -16,8 +20,13 @@ UseLighting=0
ReverseDrawOrder=1101
HoldHeadIsAboveWavyParts=1
HoldTailIsAboveWavyParts=1
TapNoteAdditionTextureCoordOffsetY=0.5
TapNoteAdditionTextureCoordOffsetX=0.5
TapNoteAdditionTextureCoordOffsetY=0
TapNoteNoteColorTextureCoordSpacingX=0
TapNoteNoteColorTextureCoordSpacingY=0.125
HoldHeadNoteColorTextureCoordSpacingX=0
HoldHeadNoteColorTextureCoordSpacingY=0.125
[GhostArrowDim]
NoneCommand=
HitMineCommand=blend,'BlendMode_Add';diffuse,1,1,1,1;zoom,1;rotationz,0;linear,0.3;rotationz,90;linear,0.3;rotationz,180;diffusealpha,0