Merge branch 'master' of https://github.com/stepmania/stepmania
@@ -77,6 +77,7 @@ GtkModule.so
|
||||
# StepMania Specific
|
||||
*.smzip
|
||||
ver.cpp
|
||||
gitversion.h
|
||||
Cache/
|
||||
Save/
|
||||
Logs/
|
||||
@@ -126,6 +127,7 @@ Utils/temp*
|
||||
Program/StepMania*.lib
|
||||
|
||||
# Unknown File Types
|
||||
*.dia
|
||||
.deps
|
||||
*.rej
|
||||
tests/*.err
|
||||
|
||||
@@ -4,6 +4,62 @@ The StepMania 5 Changelog covers all post-sm-ssc changes. For a list of changes
|
||||
from StepMania 4 alpha 5 to sm-ssc v1.2.5, see Changelog_sm-ssc.txt.
|
||||
________________________________________________________________________________
|
||||
|
||||
2015/01/20
|
||||
----------
|
||||
* [ScreenSelect] ChoiceNames can be a lua command that is evaluated to get a
|
||||
list of the gamecommands. The main use of this is to get rid of the huge
|
||||
list of metrics that ScreenSelectStyle requires. A single lua function
|
||||
instead of a metric for every style for every game type. [kyzentun]
|
||||
* [ScreenSelectMaster] IconChoicePosFunction metric added. This metric is
|
||||
optional, if it's set, it must be set to a function that returns a table
|
||||
of positions. Each position is a table of the form "{x, y, z}", where x,
|
||||
y, and z are numbers and any that is not a number defaults to 0.
|
||||
The function is passed the number of choices for the screen.
|
||||
IconChoiceOnCommand and IconChoiceOffCommand metrics added so each choice
|
||||
doesn't require its own On/OffCommand pair. These are also optional, but
|
||||
if they are set, they will override the individual commands if they exist.
|
||||
(If "IconChoiceCactusOnCommand" and "IconChoiceOnCommand" both exist,
|
||||
"IconChoiceOnCommand" will be used.) [kyzentun]
|
||||
Example:
|
||||
# in metrics.ini
|
||||
IconChoicePosFunction=choice_positions
|
||||
-- In a file in Scripts/
|
||||
function choice_positions(count)
|
||||
local ret= {}
|
||||
for i= 1, ret do ret[i]= {i*24, i*48} end
|
||||
return ret
|
||||
end
|
||||
|
||||
2015/01/16
|
||||
----------
|
||||
* [ScreenSelectMusic] HardCommentMeter metric added. Sets the meter that
|
||||
will trigger the "select music comment hard" announcer sound. [kyzentun]
|
||||
|
||||
2015/01/12
|
||||
----------
|
||||
* [ScreenOptions] GetNumRows function added. [kyzentun]
|
||||
|
||||
2015/01/09
|
||||
----------
|
||||
* [Sprite] SetStateProperties function added. [kyzentun]
|
||||
|
||||
2015/01/06
|
||||
----------
|
||||
* [ActorMultiVertex] GetSpline and SetVertsFromSplines functions added.
|
||||
[kyzentun]
|
||||
* [NoteColumnRenderer] Functions for fetching the spline handlers for the
|
||||
column added. [kyzentun]
|
||||
* [NCSplineHandler] New class for setting various parameters of a spline used
|
||||
by a NoteColumnRenderer and containing the spline. [kyzentun]
|
||||
* [CubicSplineN] New class that provides spline functionality. [kyzentun]
|
||||
|
||||
2014/12/26
|
||||
----------
|
||||
* [NoteField] Columns turned into actors that can be fetched with
|
||||
get_column_actors. [kyzentun]
|
||||
Tiny boost in fps when there is a large number of notes on screen.
|
||||
* [NoteColumnRenderer] New class for controlling one column. [kyzentun]
|
||||
|
||||
2014/12/20
|
||||
----------
|
||||
* [Preferences] AllowMultipleHighScoreWithSameName, ComboContinuesBetweenSongs
|
||||
@@ -29,6 +85,34 @@ ________________________________________________________________________________
|
||||
* [Player] "ComboBreakOnImmediateHoldLetGo" theme metric added. [sillybear]
|
||||
* [PlayerState] ApplyPreferredOptionsToOtherLevels function added. [kyzentun]
|
||||
|
||||
2014/12/07
|
||||
----------
|
||||
* [Game] GetSeparateStyles function added. Use this to detect whether a game
|
||||
allows the players to play different styles. [kyzentun] (used by kickbox)
|
||||
* [GameManager] Lua Scripts/ folders are now reloaded when the Game mode is
|
||||
changed. [kyzentun]
|
||||
* [GameState] CanSafelyEnterGameplay function added. [kyzentun]
|
||||
In kickbox game mode, players can have different styles set, pass a
|
||||
PlayerNumber when using SetCurrentStyle or GetCurrentStyle.
|
||||
* [kickbox] New game mode with 4 styles. [kyzentun]
|
||||
* [ScreenGameplay] Notefield positioning is handled a bit differently now.
|
||||
See comments in _fallback/metrics.ini above the [ScreenGameplay]
|
||||
MarginFunction metric. Basically, you can define a lua function that
|
||||
returns the space you want at the edges and in the center instead of
|
||||
setting position metrics. Do NOT use Style:GetWidth to calculate the
|
||||
margins your function returns.
|
||||
ScreenGameplay now handles zooming the notefield to fit in the space
|
||||
instead of using the NeedsZoomOutWith2Players flag in the style.
|
||||
If the notefield doesn't fit in the space between the margins, and there is
|
||||
only one player, the player will be centered even if the Center1Player pref
|
||||
is false. [kyzentun]
|
||||
* [Style] NeedsZoomOutWith2Players decapitated. Always returns false now.
|
||||
GetWidth added. [kyzentun]
|
||||
* [techno] Techno game mode no longer has special column width for versus.
|
||||
Techno was the only game mode that used the NeedsZoomOutWith2Players flag,
|
||||
and the zoom factor it applied was 0.6, and the special versus column width
|
||||
was 0.6*normal, so this should make no difference. [kyzentun]
|
||||
|
||||
2014/12/03
|
||||
----------
|
||||
* [command line arg] --game command line arg added for setting the game type
|
||||
@@ -82,6 +166,10 @@ ________________________________________________________________________________
|
||||
----------
|
||||
* [RollingNumbers] Cropping and color during tweens fixed. [kyzentun]
|
||||
|
||||
2014/10/27
|
||||
----------
|
||||
* [Changelog] Vospi read the release notes.
|
||||
|
||||
2014/10/23
|
||||
----------
|
||||
* [Global] approach, multiapproach, lerp, and lerp_color lua functions added. [kyzentun]
|
||||
|
||||
@@ -272,6 +272,7 @@
|
||||
<Function name='GetDiffuse'/>
|
||||
<Function name='GetDiffuseAlpha'/>
|
||||
<Function name='GetEffectDelta'/>
|
||||
<Function name='GetFakeParent'/>
|
||||
<Function name='GetGlow'/>
|
||||
<Function name='GetHAlign'/>
|
||||
<Function name='GetHeight'/>
|
||||
@@ -301,6 +302,7 @@
|
||||
<Function name='Real'/>
|
||||
<Function name='RealInverse'/>
|
||||
<Function name='RunCommandsRecursively'/>
|
||||
<Function name='SetFakeParent'/>
|
||||
<Function name='SetHeight'/>
|
||||
<Function name='SetSize'/>
|
||||
<Function name='SetTextureFiltering'/>
|
||||
@@ -494,6 +496,7 @@
|
||||
<Function name='GetDestFirstToDraw'/>
|
||||
<Function name='GetDestNumToDraw'/>
|
||||
<Function name='GetNumVertices'/>
|
||||
<Function name='GetSpline'/>
|
||||
<Function name='GetTexture'/>
|
||||
<Function name='LoadTexture'/>
|
||||
<Function name='SetDrawState'/>
|
||||
@@ -504,6 +507,7 @@
|
||||
<Function name='SetTextureMode'/>
|
||||
<Function name='SetVertex'/>
|
||||
<Function name='SetVertices'/>
|
||||
<Function name='SetVertsFromSplines'/>
|
||||
</Class>
|
||||
<Class base='Actor' name='ActorProxy'>
|
||||
<Function name='GetTarget'/>
|
||||
@@ -676,6 +680,31 @@
|
||||
<Function name='SHA1File'/>
|
||||
<Function name='SHA1String'/>
|
||||
</Class>
|
||||
<Class name='CubicSplineN'>
|
||||
<Function name='solve'/>
|
||||
<Function name='evaluate'/>
|
||||
<Function name='evaluate_derivative'/>
|
||||
<Function name='evaluate_second_derivative'/>
|
||||
<Function name='evaluate_third_derivative'/>
|
||||
<Function name='set_point'/>
|
||||
<Function name='set_coefficients'/>
|
||||
<Function name='get_coefficients'/>
|
||||
<Function name='set_spatial_extent'/>
|
||||
<Function name='get_spatial_extent'/>
|
||||
<Function name='get_max_t'/>
|
||||
<Function name='set_size'/>
|
||||
<Function name='get_size'/>
|
||||
<Function name='set_dimension'/>
|
||||
<Function name='get_dimension'/>
|
||||
<Function name='empty'/>
|
||||
<Function name='set_loop'/>
|
||||
<Function name='get_loop'/>
|
||||
<Function name='set_polygonal'/>
|
||||
<Function name='get_polygonal'/>
|
||||
<Function name='set_dirty'/>
|
||||
<Function name='get_dirty'/>
|
||||
<Function name='destroy'/>
|
||||
</Class>
|
||||
<Class base='Sprite' name='DifficultyIcon'>
|
||||
<Function name='SetFromDifficulty'/>
|
||||
<Function name='SetFromSteps'/>
|
||||
@@ -702,6 +731,7 @@
|
||||
<Function name='CountNotesSeparately'/>
|
||||
<Function name='GetMapJudgmentTo'/>
|
||||
<Function name='GetName'/>
|
||||
<Function name='GetSeparateStyles'/>
|
||||
</Class>
|
||||
<Class name='GameCommand'>
|
||||
<Function name='GetAnnouncer'/>
|
||||
@@ -750,6 +780,7 @@
|
||||
<Function name='ApplyPreferredModifiers'/>
|
||||
<Function name='ApplyPreferredSongOptionsToOtherLevels'/>
|
||||
<Function name='ApplyStageModifiers'/>
|
||||
<Function name='CanSafelyEnterGameplay'/>
|
||||
<Function name='ClearStageModifiersIllegalForCourse'/>
|
||||
<Function name='CurrentOptionsDisqualifyPlayer'/>
|
||||
<Function name='Dopefish'/>
|
||||
@@ -965,15 +996,32 @@
|
||||
<Function name='SelectCourse'/>
|
||||
<Function name='SelectSong'/>
|
||||
</Class>
|
||||
<Class name='NCSplineHandler'>
|
||||
<Function name='get_spline'/>
|
||||
<Function name='get_beats_per_t'/>
|
||||
<Function name='set_beats_per_t'/>
|
||||
<Function name='get_receptor_t'/>
|
||||
<Function name='set_receptor_t'/>
|
||||
<Function name='get_spline_mode'/>
|
||||
<Function name='set_spline_mode'/>
|
||||
<Function name='get_subtract_song_beat'/>
|
||||
<Function name='set_subtract_song_beat'/>
|
||||
</Class>
|
||||
<Class base='Actor' name='NoteColumnRenderer'>
|
||||
<Function name='get_pos_handler'/>
|
||||
<Function name='get_rot_handler'/>
|
||||
<Function name='get_zoom_handler'/>
|
||||
</Class>
|
||||
<Class base='ActorFrame' name='NoteField'>
|
||||
<Function name='DidHoldNote'/>
|
||||
<Function name='DidTapNote'/>
|
||||
<Function name='SetPressed'/>
|
||||
<Function name='SetDidHoldNoteCallback'/>
|
||||
<Function name='SetDidTapNoteCallback'/>
|
||||
<Function name='SetSetPressedCallback'/>
|
||||
<Function name='SetStepCallback'/>
|
||||
<Function name='Step'/>
|
||||
<Function name='did_hold_note'/>
|
||||
<Function name='did_tap_note'/>
|
||||
<Function name='get_column_actors'/>
|
||||
<Function name='set_pressed'/>
|
||||
<Function name='set_did_hold_note_callback'/>
|
||||
<Function name='set_did_tap_note_callback'/>
|
||||
<Function name='set_set_pressed_callback'/>
|
||||
<Function name='set_step_callback'/>
|
||||
<Function name='step'/>
|
||||
</Class>
|
||||
<Class name='NoteSkinManager'>
|
||||
<Function name='DoesNoteSkinExist'/>
|
||||
@@ -1396,6 +1444,7 @@
|
||||
<Function name='AllAreOnLastRow'/>
|
||||
<Function name='FocusedItemEndsScreen'/>
|
||||
<Function name='GetCurrentRowIndex'/>
|
||||
<Function name='GetNumRows'/>
|
||||
<Function name='GetOptionRow'/>
|
||||
</Class>
|
||||
<Class base='ScreenOptions' name='ScreenPlayerOptions'>
|
||||
@@ -1581,6 +1630,7 @@
|
||||
<Function name='SetCustomPosCoords'/>
|
||||
<Function name='SetEffectMode'/>
|
||||
<Function name='SetSecondsIntoAnimation'/>
|
||||
<Function name='SetStateProperties'/>
|
||||
<Function name='SetTexture'/>
|
||||
<Function name='StopUsingCustomPosCoords'/>
|
||||
<Function name='addimagecoords'/>
|
||||
@@ -1660,6 +1710,7 @@
|
||||
<Function name='GetName'/>
|
||||
<Function name='GetStepsType'/>
|
||||
<Function name='GetStyleType'/>
|
||||
<Function name='GetWidth'/>
|
||||
<Function name='LockedDifficulty'/>
|
||||
<Function name='NeedsZoomOutWith2Players'/>
|
||||
</Class>
|
||||
@@ -2212,6 +2263,11 @@
|
||||
<EnumValue name=''MusicWheelUsesSections_Always'' value='1'/>
|
||||
<EnumValue name=''MusicWheelUsesSections_ABCOnly'' value='2'/>
|
||||
</Enum>
|
||||
<Enum name='NoteColumnSplineMode'>
|
||||
<EnumValue name=''NoteColumnSplineMode_Disabled'' value='0'/>
|
||||
<EnumValue name=''NoteColumnSplineMode_Offset'' value='1'/>
|
||||
<EnumValue name=''NoteColumnSplineMode_Position'' value='2'/>
|
||||
</Enum>
|
||||
<Enum name='NotePart'>
|
||||
<EnumValue name=''NotePart_TapNote'' value='0'/>
|
||||
<EnumValue name=''NotePart_TapMine'' value='1'/>
|
||||
|
||||
@@ -112,6 +112,9 @@ save yourself some time, copy this for undocumented things:
|
||||
<Function name='ConnectToServer' return='bool' arguments='string sAddress'>
|
||||
Tries to connect to the server at <code>sAddress</code>.
|
||||
</Function>
|
||||
<Function name='create_spline' return='CubicSplineN' arguments=''>
|
||||
Creates a CubicSplineN for you to use. Make sure you destroy the CubicSplineN when you're done with it, or you will have a memory leak.
|
||||
</Function>
|
||||
<Function name='CustomDifficultyToColor' theme='_fallback' return='color' arguments='string cd'>
|
||||
[02 Colors.lua]
|
||||
</Function>
|
||||
@@ -831,6 +834,12 @@ save yourself some time, copy this for undocumented things:
|
||||
<Function name='GetParent' return='Actor' arguments=''>
|
||||
Returns the Actor's parent, or <code>nil</code> if it doesn't have one.
|
||||
</Function>
|
||||
<Function name='GetFakeParent' return='Actor' arguments=''>
|
||||
Returns the Actor's fake parent, or <code>nil</code> if it doesn't have one.
|
||||
</Function>
|
||||
<Function name='SetFakeParent' return='' arguments='Actor p'>
|
||||
Sets the Actor's fake parent to p, or clears it if p is nil.
|
||||
</Function>
|
||||
<Function name='GetVisible' return='bool' arguments=''>
|
||||
Returns the Actor's visibility.
|
||||
</Function>
|
||||
@@ -1515,6 +1524,22 @@ save yourself some time, copy this for undocumented things:
|
||||
Sets multiple vertices at once. The elements of <code>vertices</code> should themselves be tables, of the form provided to <Link class='ActorMultiVertex' function='SetVertex'>SetVertex</Link>. If <code>vertices</code> is the first argument it will start from vertex 1. If an integer is provided before <code>vertices</code> it will start from that vertex. It will add vertices as necessary.
|
||||
Example: self:SetVertices( { { { x1, y1, z1 } , { r1,g1,b1,a1 } , { tcx1,tcy1 } }; { { x2, y2, z2 } , { r2,g2,b2,a2 } , { tcx2,tcy2 } } } )
|
||||
</Function>
|
||||
<Function name='SetVertsFromSplines' return='' arguments=''>
|
||||
Sets all the drawn verts of the ActorMultiVertex by evaluating the splines.<br />
|
||||
("all the drawn verts" means all the verts between FirstToDraw and NumToDraw, the verts that are set to draw in the current tween state.)<br />
|
||||
The parts of the ActorMultiVertex are evenly spaced along the spline in terms of t value.<br />
|
||||
The exact behavior depends on the draw mode.<br />
|
||||
DrawMode_Quads uses all 4 splines, one for each corner.<br />
|
||||
DrawMode_QuadStrip and DrawMode_Strip use 2 splines, one for each edge of the strip.<br />
|
||||
DrawMode_Fan uses one spline, for the edge verts of the fan. The first vert is not touched because it is the center.<br />
|
||||
DrawMode_Triangles uses 3 splines, one for each corner.<br />
|
||||
DrawMode_SymmetricQuadStrip uses 3 splines, one on each edge and one in the center.<br />
|
||||
DrawMode_LineStrip uses 1 spline.<br />
|
||||
</Function>
|
||||
<Function name='GetSpline' return='CubicSplineN' arguments='int i'>
|
||||
Returns the requested spline. Spline indices range from 1 to 4.<br />
|
||||
ActorMultiVertex splines are not inside the tween state, and will not change the verts until you call SetVertsFromSplines.
|
||||
</Function>
|
||||
<Function name='SetNumVertices' return='void' arguments='int num'>
|
||||
Sets the number of vertices.
|
||||
</Function>
|
||||
@@ -2056,6 +2081,92 @@ save yourself some time, copy this for undocumented things:
|
||||
Returns the SHA-1 hash for <code>s</code>.
|
||||
</Function>
|
||||
</Class>
|
||||
<Class name='CubicSplineN'>
|
||||
<Description>
|
||||
All functions in this class have camel case equivalents, use whichever naming style you prefer.<br />
|
||||
This spline implementation is a cubic spline.<br />
|
||||
A spline is a line calculated from a small set of points with mathematical smooting applied.<br />
|
||||
Splines can have any number of dimensions, but splines owned by actors (the ones inside NCSplineHandler and ActorMultiVertex) always have 3 dimensions.<br />
|
||||
</Description>
|
||||
<Function name='solve' return='' arguments=''>
|
||||
Solves the spline, setting the coefficients.
|
||||
</Function>
|
||||
<Function name='evaluate' return='{float}' arguments='float t'>
|
||||
Evaluates the spline at the given t value, returning a table of the results for each dimension of the spline.<br />
|
||||
t can range from 0 to the value returned by get_max_t().<br />
|
||||
A normal spline will return its starting point for any t value less than 0 and its end point for any t value greater than the max.<br />
|
||||
A looped spline adjust the t value to be within the its range by adding or subtracting the max t as needed. (so if the max t is 4 and you evaluate at 5, it will return the same as if you evaluated at 1.)
|
||||
</Function>
|
||||
<Function name='evaluate_derivative' return='{float}' arguments='float t'>
|
||||
Evaluates the derivative at t.
|
||||
</Function>
|
||||
<Function name='evaluate_second_derivative' return='{float}' arguments='float t'>
|
||||
Evaluates the second derivative at t.
|
||||
</Function>
|
||||
<Function name='evaluate_third_derivative' return='{float}' arguments='float t'>
|
||||
Evaluates the third derivative at t.<br />
|
||||
Second and third derivative functions exist because they're possible, not because they're expected to be useful. The fourth derivative would be 0 because the equation for evaluating the spline is "a + (b*t) + (c*t^2) + (d*t^3)".
|
||||
</Function>
|
||||
<Function name='set_point' return='' arguments='int i, {float} p'>
|
||||
Sets point i of the spline to the position specified by the table p.
|
||||
</Function>
|
||||
<Function name='set_coefficients' return= '' arguments='int i, {float} b, {float} c, {float} d'>
|
||||
Sets the coefficients of the spline at point i.<br />
|
||||
Each table must contain a value for each dimension of the spline.<br />
|
||||
Solving the spline normally should cover all normal usage, this is for people that want a spline with an abnormal behavior, so if you set the coefficients directly, expect to end up with an unsmooth shape.
|
||||
</Function>
|
||||
<Function name='get_coefficients' return='{{float}, {float}, {float}}' arguments='int i'>
|
||||
Returns a table containing the tables of coefficients for the point i.
|
||||
</Function>
|
||||
<Function name='set_spatial_extent' return='' arguments='int d, float e'>
|
||||
Sets the spatial extent of dimension d of the spline to e.<br />
|
||||
The spatial extent exists to handle numbers that exist in a finite looped space, instead of the flat infinite space.<br />
|
||||
To put it more concretely, spatial extent exists to allow a spline to control rotation with wrapping behavior at 0.0 and 2pi, instead of suddenly jerking from 2pi to 0.0.
|
||||
</Function>
|
||||
<Function name='get_spatial_extent' return='float' arguments='int d'>
|
||||
Returns the spatial extent of dimension d of the spline.
|
||||
</Function>
|
||||
<Function name='get_max_t' return='float' arguments=''>
|
||||
Returns the max t value the spline extends to. For a normal spline, this will be size()-1. For a looped spline, this will be size().
|
||||
</Function>
|
||||
<Function name='set_size' return='' arguments='int s'>
|
||||
Sets the number of points in the spline. You must set the number of points before trying to set the position of any point.
|
||||
</Function>
|
||||
<Function name='get_size' return='int s' arguments=''>
|
||||
Returns the number of points in the spline.
|
||||
</Function>
|
||||
<Function name='set_dimension' return='' arguments='int d'>
|
||||
Sets the number of dimensions the spline has.<br />
|
||||
Splines that are owned by actors (the ones inside ActorMultiVertex and NCSplineHandler) cannot have their number of dimensions changed because the actors require them to have 3 dimensions.
|
||||
</Function>
|
||||
<Function name='get_dimension' return='int' arguments=''>
|
||||
Returns the number of dimensions the spline has.
|
||||
</Function>
|
||||
<Function name='empty' return='bool' arguments=''>
|
||||
Returns true of the spline has zero points, or false if it has more than zero points.
|
||||
</Function>
|
||||
<Function name='set_loop' return='' arguments='bool'>
|
||||
Sets whether the spline is looped. A looped spline is one where the end point is connected to the start point.
|
||||
</Function>
|
||||
<Function name='get_loop' return='bool' arguments=''>
|
||||
Returns whether the spline is looped.
|
||||
</Function>
|
||||
<Function name='set_polygonal' return='' arguments='bool'>
|
||||
Sets whether the spline is polygonal. If the spline is polygonal, then it will have straight lines between the points instead of curves.
|
||||
</Function>
|
||||
<Function name='get_polygonal' return='bool' arguments=''>
|
||||
Returns whether the spline is polygonal.
|
||||
</Function>
|
||||
<Function name='set_dirty' return='' arguments='bool'>
|
||||
Sets whether the spline is dirty. A dirty spline is one that has been changed in some way that affects its shape. When solve() is called, the spline will only be solved if it is dirty. The dirty flag is automatically set by everything, so you should never have to call this function.
|
||||
</Function>
|
||||
<Function name='get_dirty' return='bool' arguments=''>
|
||||
Returns whether the spline is currently dirty.
|
||||
</Function>
|
||||
<Function name='destroy' return='' arguments=''>
|
||||
Destroys the spline, freeing the memory allocated for it. This can only be called on splines created with create_spline().
|
||||
</Function>
|
||||
</Class>
|
||||
<Class name='DifficultyIcon'>
|
||||
<Function name='SetFromDifficulty' return='void' arguments='Difficulty dc'>
|
||||
Sets the DifficultyIcon's state from the difficulty passed in.
|
||||
@@ -2131,6 +2242,9 @@ save yourself some time, copy this for undocumented things:
|
||||
<Function name='GetName' return='string' arguments=''>
|
||||
Returns the name of the game such as "dance" or "pump".
|
||||
</Function>
|
||||
<Function name='GetSeparateStyles' return='bool' arguments=''>
|
||||
Returns whether this game allows the players to have separate styles.
|
||||
</Function>
|
||||
</Class>
|
||||
<Class name='GameCommand'>
|
||||
<Function name='GetAnnouncer' return='string' arguments=''>
|
||||
@@ -2270,6 +2384,16 @@ save yourself some time, copy this for undocumented things:
|
||||
The second argument is optional. Apply the GameCommand represented by <code>sCommand</code>
|
||||
for <code>pn</code>, if given. See <Link class='GameCommand' />.
|
||||
</Function>
|
||||
<Function name='CanSafelyEnterGameplay' return='bool,string' arguments=''>
|
||||
Checks various things to determine whether the game will crash when gameplay starts. Returns false and a string if gameplay cannot be entered safely.<br />
|
||||
Might not work in all cases, but will catch things like a player not having
|
||||
steps set or no current song or style. Mainly exists for people with a custom ScreenSelectMusic replacement.<br />
|
||||
Example:<br />
|
||||
local can, reason= GAMESTATE:CanSafelyEnterGameplay()<br />
|
||||
if not can then<br />
|
||||
lua.ReportScriptError("Cannot safely enter gameplay: " .. tostring(reason))<br />
|
||||
end<br />
|
||||
</Function>
|
||||
<Function name='ClearStageModifiersIllegalForCourse' return='void' arguments=''>
|
||||
Removes any stage modifiers that are illegal for course play.
|
||||
</Function>
|
||||
@@ -2944,41 +3068,102 @@ save yourself some time, copy this for undocumented things:
|
||||
Returns a table of noteskin names for the current gametype.
|
||||
</Function>
|
||||
</Class>
|
||||
<Class name='NCSplineHandler'>
|
||||
<Description>
|
||||
All functions in this class have camel case equivalents, use whichever naming style you prefer.<br />
|
||||
The spline handler holds info on how the spline is used by the engine.<br />
|
||||
Each get/set pair of functions in this class is for a different aspect of the spline's behavior.
|
||||
</Description>
|
||||
<Function name='get_spline' return='CubicSplineN' arguments=''>
|
||||
Returns the spline for this handler.
|
||||
</Function>
|
||||
<Function name='get_beats_per_t' return='float' arguments=''>
|
||||
Returns the beats per t value of the spline. If the beats_per_t is 4, then a note must be on screen for 4 beats to traverse from one point on the spline to the next.
|
||||
</Function>
|
||||
<Function name='set_beats_per_t' return='' arguments='float per'>
|
||||
Sets the beats per t value for the spline.
|
||||
</Function>
|
||||
<Function name='get_receptor_t' return='float' arguments=''>
|
||||
Returns the t value that receptors are evaluated at.
|
||||
</Function>
|
||||
<Function name='set_receptor_t' return='' arguments='float t'>
|
||||
the t value that receptors are evaluated at.
|
||||
</Function>
|
||||
<Function name='get_spline_mode' return='NoteColumnSplineMode' arguments=''>
|
||||
Returns the mode the spline is set to.<br />
|
||||
"NoteColumnSplineMode_Disabled" means the spline will not affect the notes or receptors at all.<br />
|
||||
"NoteColumnSplineMode_Offset" means the spline will added to the effects from the mods.<br />
|
||||
"NoteColumnSplineMode_Position" means only the spline affect the notes and mods will be ignored. (but only mods that affect the same aspect of the note as the spline will be disabled. So a rotation spline won't disable Mini or Tiny, but a zoom spline will, and a zoom spline won't disable Dizzy, Twirl, or Roll, but a rotation spline will.)
|
||||
</Function>
|
||||
<Function name='set_spline_mode' return='' arguments='NoteColumnSplineMode mode'>
|
||||
Sets the current spline mode for this handler.
|
||||
</Function>
|
||||
<Function name='get_subtract_song_beat' return='bool' arguments=''>
|
||||
Returns whether the current song beat is subtracted from a note's beat when calculating the t value to use on the spline.
|
||||
</Function>
|
||||
<Function name='set_subtract_song_beat' return='' arguments='bool s'>
|
||||
Sets whether the current song beat is subtracted from a note's beat when calculating the t value to use on the spline.
|
||||
</Function>
|
||||
</Class>
|
||||
<Class base='Actor' name='NoteColumnRenderer'>
|
||||
<Description>
|
||||
All functions in this class have camel case equivalents, use whichever naming style you prefer.<br />
|
||||
Position, rotation, and zoom each have separate spline handlers to allow them to have separate independent behavior.<br />
|
||||
It is important to note that the spline handlers are inside the tween state, so whenever you start a new tween on the actor, you need to refetch the spline handlers.<br />
|
||||
</Description>
|
||||
<Function name='get_pos_handler' return='NCSplineHandler' arguments=''>
|
||||
Returns the handler for the position spline.
|
||||
</Function>
|
||||
<Function name='get_rot_handler' return='NCSplineHandler' arguments=''>
|
||||
Returns the handler for the rotation spline.<br />
|
||||
The rotation applied by the rotation spline is in radians.<br />
|
||||
For convenience, the spatial extent of the rotation spline defaults to 2pi.
|
||||
</Function>
|
||||
<Function name='get_zoom_handler' return='NCSplineHandler' arguments=''>
|
||||
Returns the handler for the zoom spline.
|
||||
</Function>
|
||||
</Class>
|
||||
<Class name='NoteField'>
|
||||
<Function name='DidHoldNote' return='' arguments='int column, TapNoteScore tns, bool bright'>
|
||||
<Description>
|
||||
All functions in this class have camel case equivalents, use whichever naming style you prefer.<br />
|
||||
</Description>
|
||||
<Function name='did_hold_note' return='' arguments='int column, TapNoteScore tns, bool bright'>
|
||||
Makes the NoteField act as if a hold note was hit in the column, with the given score and bright setting. <br />
|
||||
The callback for DidHoldNote will not be called.
|
||||
The callback for did_hold_note will not be called.
|
||||
</Function>
|
||||
<Function name='DidTapNote' return='' arguments='int column, TapNoteScore tns, bool bright'>
|
||||
<Function name='did_tap_note' return='' arguments='int column, TapNoteScore tns, bool bright'>
|
||||
Makes the NoteField act as if a tap note was hit in the column, with the given score and bright setting. <br />
|
||||
The callback for DidTapNote will not be called.
|
||||
The callback for did_tap_note will not be called.
|
||||
</Function>
|
||||
<Function name='SetDidHoldNoteCallback' return= '' arguments='function callback'>
|
||||
<Function name='get_column_actors' return='{NoteColumnRenderer}' arguments=''>
|
||||
Returns a table of the actors for the columns. This means that each column is an actor, so you can move it around or animate it like an actor. See the NoteColumnRenderer class for a list of special functions for the column's actor.
|
||||
</Function>
|
||||
<Function name='set_did_hold_note_callback' return= '' arguments='function callback'>
|
||||
Same as SetDidTapNoteCallback, but for hold notes. Uses HoldNoteScore instead of TapNoteScore.
|
||||
</Function>
|
||||
<Function name='SetDidTapNoteCallback' return= '' arguments='function callback'>
|
||||
<Function name='set_did_tap_note_callback' return= '' arguments='function callback'>
|
||||
Sets the function that the NoteField will call whenever a tap note is hit.<br />
|
||||
The callback function is passed the column, the TapNoteScore, and whether the explosion will be bright.<br />
|
||||
The callback function can return changed values for the NoteField to use instead of the ones that were passed.<br />
|
||||
Pass nil instead of a function to clear the callback.
|
||||
</Function>
|
||||
<Function name='SetPressed' return='' arguments='int column'>
|
||||
<Function name='set_pressed' return='' arguments='int column'>
|
||||
Makes the NoteField act as if a press occurred in the column. <br />
|
||||
The callback for SetPressed will not be called.
|
||||
The callback for set_pressed will not be called.
|
||||
</Function>
|
||||
<Function name='SetSetPressedCallback' return= '' arguments='function callback'>
|
||||
<Function name='set_set_pressed_callback' return= '' arguments='function callback'>
|
||||
Sets the function that the NoteField will call whenever a press occurs.<br />
|
||||
The callback function is passed the column for the press.<br />
|
||||
The callback function can return changed values for the NoteField to use instead of the ones that were passed.<br />
|
||||
Pass nil instead of a function to clear the callback.
|
||||
</Function>
|
||||
<Function name='SetStepCallback' return= '' arguments='function callback'>
|
||||
<Function name='set_step_callback' return= '' arguments='function callback'>
|
||||
Sets the function that the NoteField will call whenever a step occurs.<br />
|
||||
The callback function is passed the column and the TapNoteScore for the step.<br />
|
||||
The callback function can return changed values for the NoteField to use instead of the ones that were passed.<br />
|
||||
Pass nil instead of a function to clear the callback.
|
||||
</Function>
|
||||
<Function name='Step' return='' arguments='int column, TapNoteScore tns'>
|
||||
<Function name='step' return='' arguments='int column, TapNoteScore tns'>
|
||||
Makes the NoteField act as if a step occurred in the column with the given score.
|
||||
The callback for Step will not be called.
|
||||
</Function>
|
||||
@@ -4013,6 +4198,9 @@ save yourself some time, copy this for undocumented things:
|
||||
<Function name='GetCurrentRowIndex' renamed='true' return='int' arguments='PlayerNumber pn'>
|
||||
Returns the current row that player <code>pn</code> is on. (Was previously <code>GetCurrentRow</code>.)
|
||||
</Function>
|
||||
<Function name='GetNumRows' return='int' arguments=''>
|
||||
Returns the number of rows on the screen.
|
||||
</Function>
|
||||
<Function name='GetOptionRow' return='OptionRow' arguments='int iRow'>
|
||||
Returns the specified OptionRow.
|
||||
</Function>
|
||||
@@ -4511,6 +4699,21 @@ save yourself some time, copy this for undocumented things:
|
||||
<Function name='SetSecondsIntoAnimation' return='void' arguments='float fSeconds'>
|
||||
Sets the number of seconds into the animation to <code>fSeconds</code>.
|
||||
</Function>
|
||||
<Function name='SetStateProperties' return= '' arguments='table properties'>
|
||||
Sets the properties of the states of the sprite. The properties table is identical to the "Frames" table that can be put in the sprite when calling Def.Sprite.<br />
|
||||
Example:<br />
|
||||
{{Frame= 0, Delay= .016, {0, 0}, {.25, .25}},<br />
|
||||
{Frame= 1, Delay= .016, {0, 0}, {.25, .25}},<br />
|
||||
{Frame= 2, Delay= .016, {0, 0}, {.25, .25}},<br />
|
||||
{Frame= 3, Delay= .016, {0, 0}, {.25, .25}},<br />
|
||||
}<br />
|
||||
Frame is optional, defaulting to 0.<br />
|
||||
Delay is optional, defaulting to 0.<br />
|
||||
The two tables are optional upper left and lower right corners of the fraction of the frame to use. The example makes the sprite only use the upper left corner of each frame.<br />
|
||||
Simpler example:<br />
|
||||
{{Frame= 0, Delay= .016}, {Frame= 1, Delay= .016}, {Frame= 2, Delay= .016}, {Frame= 3, Delay= .016}}<br />
|
||||
This example makes the sprite use the whole of each frame.
|
||||
</Function>
|
||||
<Function name='SetTexture' return='void' arguments='RageTexture texture'>
|
||||
Set the texture to <code>texture</code>.
|
||||
</Function>
|
||||
@@ -4719,11 +4922,14 @@ save yourself some time, copy this for undocumented things:
|
||||
<Function name='GetColumnDrawOrder' return='int' arguments='int column'>
|
||||
Returns the draw order of the column.
|
||||
</Function>
|
||||
<Function name='GetWidth' return='float' arguments='PlayerNumber pn'>
|
||||
Returns the width of the notefield for the given player with this style.
|
||||
</Function>
|
||||
<Function name='LockedDifficulty' return='bool' arguments=''>
|
||||
Returns <code>true</code> if this style locks the difficulty for both players.
|
||||
</Function>
|
||||
<Function name='NeedsZoomOutWith2Players' return='bool' arguments=''>
|
||||
Returns <code>true</code> if the Style needs to be zoomed out with two players.
|
||||
Deprecated. Always returns false.
|
||||
</Function>
|
||||
</Class>
|
||||
<Class name='TapNote'>
|
||||
|
||||
@@ -3,12 +3,6 @@ AUTOMAKE_OPTIONS = 1.7 foreign
|
||||
SUBDIRS = bundle src
|
||||
ACLOCAL_AMFLAGS = -I autoconf/m4
|
||||
|
||||
## Black magic (read: sed) for getting the product ID as defined in code, not by the autotools.
|
||||
## Quotes are making vim's highlighting of this even worse, so just escape everything,
|
||||
## including the escapes. Make it lowercase to match ArchHooks::MountInitialFileSystems().
|
||||
## Replace space with - so package build tools won't choke on the installation directory.
|
||||
productID := $(shell sed -nr /define\\s+PRODUCT_ID_BARE/\{s/.*define\\s+PRODUCT_ID_BARE\\s+\(.+\)/\\1/\;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ\ /abcdefghijklmnopqrstuvwxyz-/\;p\;q\} $(srcdir)/src/ProductInfo.h)
|
||||
|
||||
installFiles = src/stepmania
|
||||
if HAVE_GTK
|
||||
installFiles += src/GtkModule.so
|
||||
@@ -27,14 +21,14 @@ dist-hook: SMData
|
||||
cp -r -t "$(distdir)" $(installFiles)
|
||||
|
||||
install-exec-hook:
|
||||
mkdir -p "$(DESTDIR)$(prefix)/$(productID)"
|
||||
$(INSTALL) $(installFiles) "$(DESTDIR)$(prefix)/$(productID)"
|
||||
mkdir -p "$(DESTDIR)$(prefix)/stepmania-$(VERSION)"
|
||||
$(INSTALL) $(installFiles) "$(DESTDIR)$(prefix)/stepmania-$(VERSION)"
|
||||
|
||||
install-data-local:
|
||||
mkdir -p "$(DESTDIR)$(prefix)/$(productID)/Songs"
|
||||
cp -r -t "$(DESTDIR)$(prefix)/$(productID)" $(installData)
|
||||
mkdir -p "$(DESTDIR)$(prefix)/stepmania-$(VERSION)/Songs"
|
||||
cp -r -t "$(DESTDIR)$(prefix)/stepmania-$(VERSION)" $(installData)
|
||||
|
||||
uninstall-hook:
|
||||
rm -f "$(DESTDIR)$(prefix)/$(productID)/stepmania"
|
||||
rm -f "$(DESTDIR)$(prefix)/$(productID)/GtkModule.so"
|
||||
rm -f "$(DESTDIR)$(prefix)/stepmania-$(VERSION)/stepmania"
|
||||
rm -f "$(DESTDIR)$(prefix)/stepmania-$(VERSION)/GtkModule.so"
|
||||
# todo: properly remove data
|
||||
|
||||
@@ -11,7 +11,7 @@ return Def.ActorFrame {
|
||||
|
||||
LoadActor( "_Tap Receptor", NOTESKIN:LoadActor(Var "Button", "Go Receptor") ) .. {
|
||||
Frame0000=0;
|
||||
Delay0000=0;
|
||||
Delay0000=1;
|
||||
|
||||
InitCommand=cmd(playcommand, "Set");
|
||||
GameplayLeadInChangedMessageCommand=cmd(playcommand,"Set");
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
local t = LoadActor("AnyRightFist Explosion") .. {
|
||||
InitCommand=cmd(basezoomx,-1);
|
||||
}
|
||||
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('AnyRightFist','Hold Head Active');
|
||||
InitCommand=cmd(basezoomx,-1);
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('AnyRightFist','Hold Head Active');
|
||||
InitCommand=cmd(basezoomx,-1;diffuse,color("0.5,0.5,0.5,1"));
|
||||
};
|
||||
@@ -0,0 +1,5 @@
|
||||
local t = LoadActor("AnyRightFist Receptor") .. {
|
||||
InitCommand=cmd(zoomx,-1);
|
||||
}
|
||||
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('AnyRightFist','Roll Head Active');
|
||||
InitCommand=cmd(basezoomx,-1;);
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('AnyRightFist','Roll Head Active');
|
||||
InitCommand=cmd(basezoomx,-1;diffuse,color("0.5,0.5,0.5,1"));
|
||||
};
|
||||
@@ -0,0 +1,5 @@
|
||||
local t = LoadActor("AnyRightFist Tap Lift") .. {
|
||||
InitCommand=cmd(basezoomx,-1);
|
||||
}
|
||||
|
||||
return t;
|
||||
@@ -0,0 +1,5 @@
|
||||
local t = LoadActor("AnyRightFist tap Note") .. {
|
||||
InitCommand=cmd(basezoomx,-1);
|
||||
}
|
||||
|
||||
return t;
|
||||
@@ -0,0 +1,5 @@
|
||||
local t = LoadActor("AnyRightFoot Explosion") .. {
|
||||
InitCommand=cmd(basezoomx,-1);
|
||||
}
|
||||
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('AnyRightFoot','Hold Head Active');
|
||||
InitCommand=cmd(basezoomx,-1;);
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('AnyRightFoot','Hold Head Active');
|
||||
InitCommand=cmd(basezoomx,-1;diffuse,color("0.5,0.5,0.5,1"));
|
||||
};
|
||||
@@ -0,0 +1,5 @@
|
||||
local t = LoadActor("AnyRightFoot Receptor") .. {
|
||||
InitCommand=cmd(zoomx,-1);
|
||||
}
|
||||
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('AnyRightFoot','Roll Head Active');
|
||||
InitCommand=cmd(basezoomx,-1;);
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('AnyRightFoot','Roll Head Active');
|
||||
InitCommand=cmd(basezoomx,-1;diffuse,color("0.5,0.5,0.5,1"));
|
||||
};
|
||||
@@ -0,0 +1,5 @@
|
||||
local t = LoadActor("AnyRightFoot Tap Lift") .. {
|
||||
InitCommand=cmd(basezoomx,-1);
|
||||
}
|
||||
|
||||
return t;
|
||||
@@ -0,0 +1,5 @@
|
||||
local t = LoadActor("AnyRightFoot tap Note") .. {
|
||||
InitCommand=cmd(basezoomx,-1);
|
||||
}
|
||||
|
||||
return t;
|
||||
@@ -0,0 +1,29 @@
|
||||
local t = Def.ActorFrame {
|
||||
LoadActor( "_AnyRightFist Hold Explosion" ) .. {
|
||||
HoldingOnCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "HoldingOnCommand");
|
||||
HoldingOffCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "HoldingOffCommand");
|
||||
InitCommand=cmd(playcommand,"HoldingOff";finishtweening);
|
||||
};
|
||||
LoadActor( "_AnyRightFist Roll Explosion" ) .. {
|
||||
RollOnCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "RollOnCommand");
|
||||
RollOffCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "RollOffCommand");
|
||||
InitCommand=cmd(playcommand,"RollOff";finishtweening);
|
||||
};
|
||||
LoadActor( "_AnyRightFist 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(visible,false);
|
||||
DimCommand=cmd(visible,true);
|
||||
};
|
||||
LoadActor( "AnyRightFist HitMine Explosion" ) .. {
|
||||
InitCommand=cmd(blend,"BlendMode_Add";diffusealpha,0);
|
||||
HitMineCommand=NOTESKIN:GetMetricA("GhostArrowBright", "HitMineCommand");
|
||||
};
|
||||
}
|
||||
return t;
|
||||
@@ -0,0 +1 @@
|
||||
Fallback HitMine Explosion
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
@@ -0,0 +1 @@
|
||||
AnyRightFist tap note
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('AnyRightFist','Roll Head Active');
|
||||
InitCommand=cmd(diffuse,color("0.5,0.5,0.5,1"));
|
||||
};
|
||||
@@ -0,0 +1,19 @@
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture="_AnyRightFist receptor underlay";
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'InitCommand');
|
||||
NoneCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'NoneCommand');
|
||||
};
|
||||
Def.Sprite {
|
||||
Texture="_AnyRightFist receptor frame";
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'InitCommand');
|
||||
PressCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'PressCommand');
|
||||
LiftCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'LiftCommand');
|
||||
NoneCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'NoneCommand');
|
||||
};
|
||||
};
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
@@ -0,0 +1 @@
|
||||
AnyRightFist tap note
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('AnyRightFist','Roll Head Active');
|
||||
InitCommand=cmd(diffuse,color("0.5,0.5,0.5,1"));
|
||||
};
|
||||
@@ -0,0 +1,10 @@
|
||||
local t = Def.ActorFrame {
|
||||
InitCommand=cmd(pulse;effectclock,'beat';effectmagnitude,1,1.2,1);
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_AnyRightFist', 'tap lift' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=cmd(diffuseramp;effectclock,'beat';effectcolor1,color("1,1,1,1");effectcolor2,color("1,1,1,0.5"));
|
||||
};
|
||||
};
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 6.6 KiB |
@@ -0,0 +1,29 @@
|
||||
local t = Def.ActorFrame {
|
||||
LoadActor( "_AnyRightFoot Hold Explosion" ) .. {
|
||||
HoldingOnCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "HoldingOnCommand");
|
||||
HoldingOffCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "HoldingOffCommand");
|
||||
InitCommand=cmd(playcommand,"HoldingOff";finishtweening);
|
||||
};
|
||||
LoadActor( "_AnyRightFoot Roll Explosion" ) .. {
|
||||
RollOnCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "RollOnCommand");
|
||||
RollOffCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "RollOffCommand");
|
||||
InitCommand=cmd(playcommand,"RollOff";finishtweening);
|
||||
};
|
||||
LoadActor( "_AnyRightFoot 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(visible,false);
|
||||
DimCommand=cmd(visible,true);
|
||||
};
|
||||
LoadActor( "AnyRightFoot HitMine Explosion" ) .. {
|
||||
InitCommand=cmd(blend,"BlendMode_Add";diffusealpha,0);
|
||||
HitMineCommand=NOTESKIN:GetMetricA("GhostArrowBright", "HitMineCommand");
|
||||
};
|
||||
}
|
||||
return t;
|
||||
@@ -0,0 +1 @@
|
||||
Fallback HitMine Explosion
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
@@ -0,0 +1 @@
|
||||
AnyRightFoot tap note
|
||||
@@ -0,0 +1 @@
|
||||
AnyRightFoot tap note
|
||||
@@ -0,0 +1,19 @@
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture="_AnyRightFoot receptor underlay";
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'InitCommand');
|
||||
NoneCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'NoneCommand');
|
||||
};
|
||||
Def.Sprite {
|
||||
Texture="_AnyRightFoot receptor frame";
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'InitCommand');
|
||||
PressCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'PressCommand');
|
||||
LiftCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'LiftCommand');
|
||||
NoneCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'NoneCommand');
|
||||
};
|
||||
};
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
@@ -0,0 +1 @@
|
||||
AnyRightFoot tap note
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('AnyRightFoot','Roll Head Active');
|
||||
InitCommand=cmd(diffuse,color("0.5,0.5,0.5,1"));
|
||||
};
|
||||
@@ -0,0 +1,10 @@
|
||||
local t = Def.ActorFrame {
|
||||
InitCommand=cmd(pulse;effectclock,'beat';effectmagnitude,1,1.2,1);
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_AnyRightFoot', 'tap lift' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=cmd(diffuseramp;effectclock,'beat';effectcolor1,color("1,1,1,1");effectcolor2,color("1,1,1,0.5"));
|
||||
};
|
||||
};
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('DownRightFist','Hold Head Active');
|
||||
InitCommand=cmd(basezoomx,-1;);
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('DownRightFist','Hold Head Active');
|
||||
InitCommand=cmd(basezoomx,-1;diffuse,color("0.5,0.5,0.5,1"));
|
||||
};
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('DownRightFist','Roll Head Active');
|
||||
InitCommand=cmd(basezoomx,-1;);
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('DownRightFist','Roll Head Active');
|
||||
InitCommand=cmd(basezoomx,-1;diffuse,color("0.5,0.5,0.5,1"));
|
||||
};
|
||||
@@ -0,0 +1,5 @@
|
||||
local t = LoadActor("DownRightFist tap Note") .. {
|
||||
InitCommand=cmd(basezoomx,-1);
|
||||
}
|
||||
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('DownRightFoot','Hold Head Active');
|
||||
InitCommand=cmd(basezoomx,-1;);
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('DownRightFoot','Hold Head Active');
|
||||
InitCommand=cmd(basezoomx,-1;;diffuse,color("0.5,0.5,0.5,1"));
|
||||
};
|
||||
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('DownRightFoot','Roll Head Active');
|
||||
InitCommand=cmd(basezoomx,-1;);
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath('DownRightFoot','Roll Head Active');
|
||||
InitCommand=cmd(basezoomx,-1;diffuse,color("0.5,0.5,0.5,1"));
|
||||
};
|
||||
@@ -0,0 +1,5 @@
|
||||
local t = LoadActor("DownRightfoot tap Note") .. {
|
||||
InitCommand=cmd(basezoomx,-1);
|
||||
}
|
||||
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.0 KiB |