finally done but then commiting is being a dick cuz I suck at it
anyways finaly this noteskin is done and I can sleep, als if anyone wonders why I put it in the common folder thats because it has piu and dance build in one so if you have it fallback on _Editor it checks in the gametype folder and the common folder which is were its in, also it takes some time to load when I'm picking a song, maybe becaues of HD images that are 4 times the normal size or because of lua errors, or a combination of the two, I dont know need to check that later also if you want to use this noteskin or test it just make a folder in pump or dance and make a metric.ini file with [Global] FallbackNoteSkin=_Editor and it will fallback to it because fallback checks gametype folder and common folder also I NEED TO LEARN HOW TO MERGE CUZ IT PISSED ME OFF
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 8.1 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_center', 'explosion' );
|
||||
InitCommand=cmd(blend,"BlendMode_Add";finishtweening;diffusealpha,0.2;zoom,0.6;linear,0.1;diffusealpha,0;zoom,0.8);
|
||||
};
|
||||
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 9.5 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
@@ -0,0 +1,8 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_center', 'explosion' );
|
||||
W1Command=cmd(blend,"BlendMode_Add";finishtweening;diffusealpha,0.2;zoom,0.6;linear,0.1;diffusealpha,0;zoom,0.8);
|
||||
W2Command=cmd(blend,"BlendMode_Add";finishtweening;diffusealpha,0.2;zoom,0.6;linear,0.1;diffusealpha,0;zoom,0.8);
|
||||
W3Command=cmd(blend,"BlendMode_Add";finishtweening;diffusealpha,0.2;zoom,0.6;linear,0.1;diffusealpha,0;zoom,0.8);
|
||||
W4Command=cmd(blend,"BlendMode_Add";finishtweening;diffusealpha,0.2;zoom,0.6;linear,0.1;diffusealpha,0;zoom,0.8);
|
||||
W5Command=cmd(blend,"BlendMode_Add";finishtweening;diffusealpha,0.2;zoom,0.6;linear,0.1;diffusealpha,0;zoom,0.8);
|
||||
};
|
||||
@@ -0,0 +1,5 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_centerp1', 'tap note' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
};
|
||||
@@ -0,0 +1,5 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_centerp1', 'tap note' );
|
||||
Frame0000=3;
|
||||
Delay0000=1;
|
||||
};
|
||||
@@ -0,0 +1,21 @@
|
||||
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
|
||||
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
|
||||
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
|
||||
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( "_centerp1", "Tap Note" );
|
||||
Frame0000=99;
|
||||
Delay0000=1;
|
||||
InitCommand=cmd(;glowblink;effectcolor1,0.4,0.4,0.4,0.4;effectcolor2,0.8,0.8,0.8,0.4;effectclock,'beat';effecttiming,0.2,0,0.8,0);
|
||||
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
|
||||
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
|
||||
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
|
||||
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");
|
||||
};
|
||||
};
|
||||
return t;
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_centerp1', 'tap fake' );
|
||||
Frames = Sprite.LinearFrames( 6, 1 );
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_centerp1', 'tap lift' );
|
||||
Frames = Sprite.LinearFrames( 6, 1 );
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_centerp1', 'tap note' );
|
||||
Frames = Sprite.LinearFrames( 6, 1 );
|
||||
};
|
||||
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,6 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'explosion' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=cmd(diffuseblink;effectcolor1,1,1,1,0.8;effectcolor2,1,1,1,1;effectclock,'beat';effectperiod,0.25);
|
||||
};
|
||||
@@ -0,0 +1,5 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
};
|
||||
@@ -0,0 +1,5 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
|
||||
Frame0000=1;
|
||||
Delay0000=1;
|
||||
};
|
||||
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 13 KiB |
@@ -0,0 +1,21 @@
|
||||
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
|
||||
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
|
||||
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
|
||||
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( "_Down", "Tap Note" );
|
||||
Frame0000=69;
|
||||
Delay0000=1;
|
||||
InitCommand=cmd(;glowblink;effectcolor1,0.4,0.4,0.4,0.4;effectcolor2,0.8,0.8,0.8,0.4;effectclock,'beat';effecttiming,0.2,0,0.8,0);
|
||||
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
|
||||
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
|
||||
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
|
||||
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");
|
||||
};
|
||||
};
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,5 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'explosion' );
|
||||
Frame0000=1;
|
||||
Delay0000=1;
|
||||
};
|
||||
@@ -0,0 +1,5 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'explosion' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
};
|
||||
@@ -0,0 +1,19 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'tap fake' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
Frame0001=1;
|
||||
Delay0001=1;
|
||||
Frame0002=2;
|
||||
Delay0002=1;
|
||||
Frame0003=3;
|
||||
Delay0003=1;
|
||||
Frame0004=0;
|
||||
Delay0004=1;
|
||||
Frame0005=1;
|
||||
Delay0005=1;
|
||||
Frame0006=2;
|
||||
Delay0006=1;
|
||||
Frame0007=3;
|
||||
Delay0007=1;
|
||||
};
|
||||
@@ -0,0 +1,19 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'tap lift' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
Frame0001=1;
|
||||
Delay0001=1;
|
||||
Frame0002=2;
|
||||
Delay0002=1;
|
||||
Frame0003=3;
|
||||
Delay0003=1;
|
||||
Frame0004=0;
|
||||
Delay0004=1;
|
||||
Frame0005=1;
|
||||
Delay0005=1;
|
||||
Frame0006=2;
|
||||
Delay0006=1;
|
||||
Frame0007=3;
|
||||
Delay0007=1;
|
||||
};
|
||||
@@ -0,0 +1,18 @@
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'tap mine underlay' );
|
||||
Frames = Sprite.LinearFrames( 1, 1 );
|
||||
InitCommand=cmd(diffuseshift;effectcolor1,0.4,0,0,1;effectcolor2,1,0,0,1;effectclock,'beat');
|
||||
};
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'tap mine base' );
|
||||
Frames = Sprite.LinearFrames( 1, 1 );
|
||||
InitCommand=cmd(spin;effectclock,'beat';effectmagnitude,0,0,80);
|
||||
};
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'tap mine overlay' );
|
||||
Frames = Sprite.LinearFrames( 1, 1 );
|
||||
InitCommand=cmd(spin;effectclock,'beat';effectmagnitude,0,0,-40);
|
||||
};
|
||||
};
|
||||
return t;
|
||||
@@ -0,0 +1,20 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
Frame0001=1;
|
||||
Delay0001=1;
|
||||
Frame0002=2;
|
||||
Delay0002=1;
|
||||
Frame0003=3;
|
||||
Delay0003=1;
|
||||
Frame0004=0;
|
||||
Delay0004=1;
|
||||
Frame0005=1;
|
||||
Delay0005=1;
|
||||
Frame0006=2;
|
||||
Delay0006=1;
|
||||
Frame0007=3;
|
||||
Delay0007=1;
|
||||
|
||||
};
|
||||
@@ -0,0 +1,5 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_downleftp1', 'tap note' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
};
|
||||
@@ -0,0 +1,5 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_downleftp1', 'tap note' );
|
||||
Frame0000=3;
|
||||
Delay0000=1;
|
||||
};
|
||||
@@ -0,0 +1,21 @@
|
||||
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
|
||||
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
|
||||
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
|
||||
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( "_downleftp1", "Tap Note" );
|
||||
Frame0000=99;
|
||||
Delay0000=1;
|
||||
InitCommand=cmd(;glowblink;effectcolor1,0.4,0.4,0.4,0.4;effectcolor2,0.8,0.8,0.8,0.4;effectclock,'beat';effecttiming,0.2,0,0.8,0);
|
||||
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
|
||||
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
|
||||
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
|
||||
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");
|
||||
};
|
||||
};
|
||||
return t;
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_downleftp1', 'tap fake' );
|
||||
Frames = Sprite.LinearFrames( 6, 1 );
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_downleftp1', 'tap lift' );
|
||||
Frames = Sprite.LinearFrames( 6, 1 );
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_downleftp1', 'tap note' );
|
||||
Frames = Sprite.LinearFrames( 6, 1 );
|
||||
};
|
||||
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,209 @@
|
||||
--[[
|
||||
USW Noteskin.lua Version V2
|
||||
Made for Version Stepmania 5 Preview 4
|
||||
|
||||
I am the bone of my noteskin
|
||||
Arrows are my body, and explosions are my blood
|
||||
I have created over a thousand noteskins
|
||||
Unknown to death
|
||||
Nor known to life
|
||||
Have withstood pain to create many noteskins
|
||||
Yet these hands will never hold anything
|
||||
So as I pray, Unlimited Stepman Works
|
||||
|
||||
If you want to know the list of lua commands you can use here is the main page for help http://kki.ajworld.net/lua/sm5/Lua.xml
|
||||
--]]
|
||||
|
||||
local ret = ... or {};
|
||||
|
||||
--I always had the problem were I wrote var instead of Var, which really iritated me wondering why a code wouldnt work
|
||||
--You can edit it out if you want, But I'm just gonna leave it here so incase a person wants to make a noteskin
|
||||
--And gets the same problem as me were you use var instead of Var, atleast this should make it still work
|
||||
--But its best to use Var, And make sure to check all your code for little mistakes while you write ;)
|
||||
local var = Var;
|
||||
|
||||
--[[
|
||||
This is the general redirect table, Not the general redirect code, We use this if we are lazy ;)
|
||||
Or if we cant a directon of a noteskin use the exact same files as another direction
|
||||
The most re used direction in this case is "Down"
|
||||
You can add and remove values if you want, It works for every game type,
|
||||
If you want an easy way to know how all directions are called go in to stepmaniaoptions and change gametype
|
||||
Then if you go to key configure look at the names for the keys, They are the same names that are used in the noteskin.lua
|
||||
--]]
|
||||
ret.RedirTable =
|
||||
{
|
||||
Up = "Down",
|
||||
Down = "Down",
|
||||
Left = "Down",
|
||||
Right = "Down",
|
||||
Center = "Down",
|
||||
DownLeft = "Down",
|
||||
DownRight = "Down",
|
||||
UpLeft = "Down",
|
||||
UpRight = "Down",
|
||||
};
|
||||
|
||||
--[[
|
||||
This is the general redirect code, We use this if we want to redirect parts of noteskins to other parts
|
||||
Because unlike the ret.RedirTable which redirects everything to the defined direction.
|
||||
Here we can add redirects for seperate elements which means we can use separate images if we want
|
||||
--]]
|
||||
local OldRedir = ret.Redir;
|
||||
ret.Redir = function(sButton, sElement)
|
||||
sButton, sElement = OldRedir(sButton, sElement);
|
||||
|
||||
--This is were we call the ret.RedirTable and define it as sButton
|
||||
--So it get called when we return sButton including the code under here
|
||||
sButton = ret.RedirTable[sButton];
|
||||
|
||||
--We want to use custom hold/roll per direction, But keep global hold/roll heads and explosions.
|
||||
if string.find(sElement, "Hold") or string.find(sElement, "Roll") then
|
||||
if not string.find(sElement, "Head") and not string.find(sElement, "Explosion") then
|
||||
if Var "Button" == "Left" then sButton = "Left"; end
|
||||
if Var "Button" == "Right" then sButton = "Right"; end
|
||||
if Var "Button" == "Down" then sButton = "Down"; end
|
||||
if Var "Button" == "Up" then sButton = "Up"; end
|
||||
if Var "Button" == "UpLeft" then sButton = "UpLeft"; end
|
||||
if Var "Button" == "UpRight" then sButton = "UpRight"; end
|
||||
end
|
||||
end
|
||||
|
||||
--Making Roll Head/Explosion fallback on Hold
|
||||
if sElement == "Roll Head Inactive" then sElement = "Hold Head Inactive"; end
|
||||
if sElement == "Roll Head Active" then sElement = "Hold Head Active"; end
|
||||
if sElement == "Roll Explosion" then sElement = "Hold Explosion"; end
|
||||
|
||||
--Adding stuff for more directions for diffrent gametypes
|
||||
if GAMESTATE:GetCurrentGame():GetName() == "dance" then
|
||||
--Making the Upleft and Upright Hold/Roll body/BottomCap/TopCap but not Explosions use SoloUpLeft and SoloUpRight instead
|
||||
--When the gametype is dance this way we can define diffrent images for diffrent gametypes
|
||||
if string.find(sElement, "Hold") or string.find(sElement, "Roll") then
|
||||
if Var "Button" == "UpLeft" and not string.find(sElement, "Explosion") then sButton = "SoloUpLeft"; end
|
||||
if Var "Button" == "UpRight" and not string.find(sElement, "Explosion") then sButton = "SoloUpRight"; end
|
||||
end
|
||||
end
|
||||
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
|
||||
--Making Pump it up be rythm color based, Only problem is that in sm player 1 and player 2 noteskins are both defined as player 1
|
||||
--Need a way to get the parent but atm it ends up as nil because of no parent
|
||||
--So Player 1 and 2 both use Player 1 images for now
|
||||
--We also let every direction aside from Center use DownLeftp1
|
||||
if GAMESTATE:GetMasterPlayerNumber() == "PlayerNumber_P1" then
|
||||
if Var "Button" == "UpLeft" then sButton = "DownLeftp1"; end
|
||||
if Var "Button" == "UpRight" then sButton = "DownLeftp1"; end
|
||||
if Var "Button" == "DownLeft" then sButton = "DownLeftp1"; end
|
||||
if Var "Button" == "DownRight" then sButton = "DownLeftp1"; end
|
||||
if Var "Button" == "Center" then sButton = "Centerp1"; end
|
||||
elseif GAMESTATE:GetMasterPlayerNumber() == "PlayerNumber_P2" then
|
||||
if Var "Button" == "UpLeft" then sButton = "Downleftp2"; end
|
||||
if Var "Button" == "UpRight" then sButton = "Downleftp2"; end
|
||||
if Var "Button" == "DownLeft" then sButton = "DownLeftp2"; end
|
||||
if Var "Button" == "DownRight" then sButton = "DownLeftp2"; end
|
||||
if Var "Button" == "Center" then sButton = "Centerp2"; end
|
||||
end
|
||||
--We already defined everything for diffrent players above
|
||||
--But we want to use the same Center hold images for every direction and player
|
||||
if string.find(sElement, "Bottomcap") then sButton = "Center"; end
|
||||
if string.find(sElement, "Topcap") then sButton = "Center"; end
|
||||
if string.find(sElement, "Body") then sButton = "Center"; end
|
||||
--Lets also add explosion as Center
|
||||
if string.find(sElement, "Explosion") then sButton = "Center"; end
|
||||
if sElement == "Tap Explosion Dim" then sElement = "Tap Explosion Bright"; end
|
||||
end
|
||||
|
||||
--Define that every direction uses Tap Mine from Down
|
||||
if Var "Element" == "Tap Mine" then sButton = "Down"; end
|
||||
|
||||
return sButton, sElement;
|
||||
end
|
||||
|
||||
--[[
|
||||
This is the general function code
|
||||
In here we can define how we want the stuff to act
|
||||
Which basicly means instead of using a load of lua files for just some effect
|
||||
We can just use code in here so we need to use less files
|
||||
Which is nice if you want to save up space ;)
|
||||
Only problem is that the Hold/Roll parts are written down in the code as sprite files
|
||||
Which is the original old 3.9 code, Which basicly means that their code doesnt work in here
|
||||
|
||||
Also unlike the general redirect code which has sElement and sButton defined in the common noteskin
|
||||
They need to be defined here manualy which can be done with
|
||||
local sElement = Var "Element";
|
||||
local sButton = Var "Button";
|
||||
To make it easier for everyone I already added them
|
||||
The reason we use local to define the stuff is for when a code doesnt accept the full code
|
||||
Like for example if we did string.find(Var "Element", "Down") it wouldnt work
|
||||
--]]
|
||||
local OldFunc = ret.Load;
|
||||
function ret.Load()
|
||||
local t = OldFunc();
|
||||
local sElement = Var "Element";
|
||||
local sButton = Var "Button";
|
||||
|
||||
--Explosion should not be rotated; it calls other actors.
|
||||
if Var "Element" == "Explosion" then
|
||||
t.BaseRotationZ = nil;
|
||||
end
|
||||
|
||||
|
||||
if GAMESTATE:GetCurrentGame():GetName() == "dance" then
|
||||
--We define that we dont want the hold heads for UpLeft and UpRight to be rotated because we rotate them in a lua file
|
||||
if Var "Button" == "UpLeft" and string.find(sElement, "Head") then t.BaseRotationZ = nil; end
|
||||
if Var "Button" == "UpRight" and string.find(sElement, "Head") then t.BaseRotationZ = nil; end
|
||||
end
|
||||
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
|
||||
--Because the images for Pump it up are using the DownLeft for every direction aside from center, We let it be rotated here
|
||||
--Because the rotate table is set up for dance and these are for PIU
|
||||
if Var "Button" == "UpLeft" then t.BaseRotationZ = 90; end
|
||||
if Var "Button" == "UpRight" then t.BaseRotationZ = 180; end
|
||||
if Var "Button" == "DownLeft" then t.BaseRotationZ = nil; end
|
||||
if Var "Button" == "DownRight" then t.BaseRotationZ = -90; end
|
||||
if Var "Element" == "Tap Mine" then t.InitCommand=cmd(zoom,-0.8); end
|
||||
end
|
||||
return t;
|
||||
end
|
||||
-- >
|
||||
|
||||
|
||||
--Define which parts of noteskins which we want to rotate
|
||||
ret.PartsToRotate =
|
||||
{
|
||||
["Receptor"] = true,
|
||||
["Tap Explosion Bright"] = true,
|
||||
["Tap Explosion Dim"] = true,
|
||||
["Tap Note"] = true,
|
||||
["Tap Fake"] = true,
|
||||
["Tap Lift"] = true,
|
||||
["Tap Addition"] = true,
|
||||
["Hold Explosion"] = true,
|
||||
["Hold Head Active"] = true,
|
||||
["Hold Head Inactive"] = true,
|
||||
["Roll Explosion"] = true,
|
||||
["Roll Head Active"] = true,
|
||||
["Roll Head Inactive"] = true,
|
||||
};
|
||||
--Defined the parts to be rotated at which degree
|
||||
ret.Rotate =
|
||||
{
|
||||
Up = 180,
|
||||
Down = 0,
|
||||
Left = 90,
|
||||
Right = -90,
|
||||
UpLeft = 135,
|
||||
UpRight = -135,
|
||||
Center = 0,
|
||||
DownLeft = 0,
|
||||
DownRight = -0,
|
||||
};
|
||||
|
||||
--Parts that should be Redirected to _Blank.png
|
||||
--you can add/remove stuff if you want
|
||||
ret.Blank =
|
||||
{
|
||||
["Hold Tail Active"] = true,
|
||||
["Hold Tail Inactive"] = true,
|
||||
["Roll Tail Active"] = true,
|
||||
["Roll Tail Inactive"] = true,
|
||||
};
|
||||
|
||||
--dont forget to close the ret cuz else it wont work ;>
|
||||
return ret;
|
||||
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 13 KiB |
@@ -0,0 +1,15 @@
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_upleftsolo', 'underlay' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=cmd();
|
||||
};
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=cmd(rotationz,135);
|
||||
};
|
||||
};
|
||||
return t;
|
||||
@@ -0,0 +1,15 @@
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_upleftsolo', 'underlay' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=cmd();
|
||||
};
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
|
||||
Frame0000=1;
|
||||
Delay0000=1;
|
||||
InitCommand=cmd(rotationz,135);
|
||||
};
|
||||
};
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 9.9 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 13 KiB |
@@ -0,0 +1,15 @@
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_upleftsolo', 'underlay' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=cmd(zoomx,-1);
|
||||
};
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=cmd(rotationz,-135);
|
||||
};
|
||||
};
|
||||
return t;
|
||||
@@ -0,0 +1,15 @@
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_upleftsolo', 'underlay' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=cmd(zoomx,-1);
|
||||
};
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
|
||||
Frame0000=1;
|
||||
Delay0000=1;
|
||||
InitCommand=cmd(rotationz,-135);
|
||||
};
|
||||
};
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 12 KiB |