From bd9ba6bd48cc081e12554ac8352318791a4e7d59 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Mon, 17 Mar 2008 08:56:19 +0000 Subject: [PATCH] positionIndex -> offsetFromCenter, new StreamDisplay --- stepmania/Themes/default/metrics.ini | 47 ++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 50bb55a531..1e26865800 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -1841,18 +1841,18 @@ LockedInitialVelocity=7 ScrollBarHeight=300 ScrollBarOnCommand=x,-128 ; linear wheel example: -; ItemTransformFunction=function(self,positionIndex,itemIndex,numItems) self:y(positionIndex*38); end +; ItemTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:y(offsetFromCenter*38); end ; 3D wheel example: -; ItemTransformFunction=function(self,positionIndex,itemIndex,numItems) +; ItemTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) ; local curve = math.pi; ; local NUM_WHEEL_ITEMS = 11; ; local WHEEL_3D_RADIUS = 245; -; local rotationx_radians = scale(positionIndex,-NUM_WHEEL_ITEMS/2.0f,+NUM_WHEEL_ITEMS/2.0f,-curve/2.f,+curve/2.f) ); -; self:x( 1 - math.cos(positionIndex/math.pi) ); +; local rotationx_radians = scale(offsetFromCenter,-NUM_WHEEL_ITEMS/2.0f,+NUM_WHEEL_ITEMS/2.0f,-curve/2.f,+curve/2.f) ); +; self:x( 1 - math.cos(offsetFromCenter/math.pi) ); ; self:y( WHEEL_3D_RADIUS * math.sin(rotationx_radians) ); ; self:z( -100 + WHEEL_3D_RADIUS * math.cos(rotationx_radians) ); ; self:rotationx( rotationx_radians * 180/math.pi ); -- to degrees end -ItemTransformFunction=function(self,positionIndex,itemIndex,numItems) self:x( (1-math.cos(positionIndex/math.pi))*44 ); self:y( positionIndex*38 ); end +ItemTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:x( (1-math.cos(offsetFromCenter/math.pi))*44 ); self:y( offsetFromCenter*38 ); end NumWheelItems=11 MusicWheelSortOnCommand= MusicWheelSortOffCommand= @@ -1932,12 +1932,7 @@ DescWidth=400 MeterWidth=232 MeterHeight=24 DangerThreshold=0.2 -NumChambers=20 -NumStrips=2 InitialValue=0.5 -StreamNormalOnCommand= -StreamHotOnCommand= -StreamPassingOnCommand= MinStayAlive="TapNoteScore_W3" LifePercentChangeW1=0.008 LifePercentChangeW2=0.008 @@ -2050,7 +2045,7 @@ NumRowsShown=10 RowInitCommand= RowOnCommand= RowOffCommand= -RowPositionTransformFunction=function(self,positionIndex,itemIndex,numItems) self:y(SCREEN_CENTER_Y-152+34*positionIndex) end +RowPositionTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:y(SCREEN_CENTER_Y-152+34*offsetFromCenter) end ExplanationP1X=SCREEN_CENTER_X-250 ExplanationP1Y=SCREEN_CENTER_Y+172 ExplanationP2X=SCREEN_CENTER_X+250 @@ -3895,7 +3890,7 @@ ShowExitRow=false FrameOnCommand= FrameOffCommand= NumRowsShown=30 -RowPositionTransformFunction=function(self,positionIndex,itemIndex,numItems) local indexOffset = itemIndex-(numItems-1)/2; self:y( SCREEN_CENTER_Y + indexOffset * 20 ); end +RowPositionTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) local indexOffset = itemIndex-(numItems-1)/2; self:y( SCREEN_CENTER_Y + indexOffset * 20 ); end StyleIcon=false HeaderX=SCREEN_CENTER_X HeaderY=SCREEN_TOP+40 @@ -4031,7 +4026,7 @@ CategoryRecordFeats=true [ScreenMiniMenuContext] Fallback="ScreenMiniMenu" NumRowsShown=10 -RowPositionTransformFunction=function(self,positionIndex,itemIndex,numItems) self:y(24*(positionIndex-(numItems-1)/2)) end +RowPositionTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) self:y(24*(offsetFromCenter-(numItems-1)/2)) end ItemsLongRowSharedX=0 TitleX=0 TitleX=-54 @@ -4405,3 +4400,29 @@ EditDescriptionY=0 EditDescriptionOnCommand=horizalign,right;zoom,.5;shadowlength,2;maxwidth,150 ZeroMeterString="?" MeterSetCommand=%function(self,param) self:diffuse(DifficultyAndStepsTypeToColor(param.Difficulty,param.StepsType)); end + +[StreamDisplay] +; a simple bar life meter: +; PillTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) local native_width=32; local zoomed_width=12; self:zoomx(zoomed_width/native_width); self:x((itemIndex-(numItems/2))*zoomed_width); end +PillTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) \ + local native_width=32; \ + local native_height=32; \ + local zoomed_height=10; \ + local spacing_x=11.3; \ + self:zoomy(zoomed_height/native_height); \ + self:x((itemIndex-(numItems/2))*spacing_x); \ + local zoomed_width=0; \ + if (itemIndex % 2) == 0 then \ + zoomed_width=24; \ + self:rotationz(90); \ + else \ + zoomed_width=31; \ + self:rotationz(-60); \ + end; \ + self:zoomx(zoomed_width/native_width); \ +end +TextureCoordScaleX=10 +NumPills=20 + +[StreamDisplayExtra] +Fallback="StreamDisplay"