refactor and change NoteSkins
@@ -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
|
||||
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
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
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
@@ -0,0 +1 @@
|
||||
return LoadActor( NOTESKIN:GetPath("", "_Tap Lead-in Receptor") );
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
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
|
||||
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
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');
|
||||
};
|
||||
|
||||
|
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
|
||||
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 5.4 KiB |
|
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" ) );
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 975 B After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 598 B After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
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;
|
||||
|
After Width: | Height: | Size: 142 KiB |
@@ -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
|
||||
|
||||