diff --git a/Themes/HelloWorld/BGAnimations/ScreenWithMenuElements decorations.lua b/Themes/HelloWorld/BGAnimations/ScreenWithMenuElements decorations.lua new file mode 100644 index 0000000000..ecfb1b0a2d --- /dev/null +++ b/Themes/HelloWorld/BGAnimations/ScreenWithMenuElements decorations.lua @@ -0,0 +1,8 @@ +-- ScreenWithMenuElements decorations is a very important file, as it will put a +-- decorations layer on pretty much every screen. +local t = Def.ActorFrame{}; + +t[#t+1] = StandardDecorationFromFileOptional("Header","Header"); +--t[#t+1] = StandardDecorationFromFileOptional("Footer","Footer"); + +return t; \ No newline at end of file diff --git a/Themes/HelloWorld/Graphics/ScreenGuideMain header.lua b/Themes/HelloWorld/Graphics/ScreenGuideMain header.lua new file mode 100644 index 0000000000..861930a934 --- /dev/null +++ b/Themes/HelloWorld/Graphics/ScreenGuideMain header.lua @@ -0,0 +1,17 @@ +local t = Def.ActorFrame{ + Def.Quad{ + InitCommand=cmd(zoomto,SCREEN_WIDTH,120;diffuse,color("#EEF4FFCC")); + }; + LoadFont("_frutiger roman 24px")..{ + Name="Header"; + Text=THEME:GetString("ScreenGuideMain","Header"); + InitCommand=cmd(x,-312;y,-48;halign,0;diffuse,color("#111111FF");diffusetopedge,color("#11111188");shadowlength,-1;shadowcolor,color("#FFFFFF44")); + }; + LoadFont("_frutiger roman 24px")..{ + Name="Header"; + Text=THEME:GetString("ScreenGuideMain","Explanation"); + InitCommand=cmd(x,-312;y,-28;align,0,0;diffuse,color("#111111FF");zoom,0.65); + }; +}; + +return t; \ No newline at end of file diff --git a/Themes/HelloWorld/Graphics/ScreenGuideMain scroll.lua b/Themes/HelloWorld/Graphics/ScreenGuideMain scroll.lua new file mode 100644 index 0000000000..cc245d8fd6 --- /dev/null +++ b/Themes/HelloWorld/Graphics/ScreenGuideMain scroll.lua @@ -0,0 +1,34 @@ +local gc = Var("GameCommand") +local itemName = gc:GetName() + +local t = Def.ActorFrame{ + -- focused frame + LoadActor( THEME:GetPathG("SectionMenu","ItemFocused") )..{ + GainFocusCommand=cmd(decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0); + }; + -- unfocused + LoadActor( THEME:GetPathG("SectionMenu","ItemUnfocused") )..{ + GainFocusCommand=cmd(decelerate,0.5;diffusealpha,0); + LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); + }; + + Def.ActorFrame{ + LoadFont("_frutiger roman 24px")..{ + Name="SectionName"; + Text=THEME:GetString("ScreenGuideMain",itemName); + InitCommand=cmd(x,-250;y,-6;halign,0;diffuse,color("#222222FF")); + GainFocusCommand=cmd(decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0.5); + }; + LoadFont("_frutiger roman 24px")..{ + Name="SectionDesc"; + Text=THEME:GetString("ScreenGuideMain",itemName.."Desc"); + InitCommand=cmd(x,-248;y,10;align,0,0;diffuse,color("#222222FF");zoom,0.5); + GainFocusCommand=cmd(decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0.5); + }; + }; +}; + +return t; \ No newline at end of file diff --git a/Themes/HelloWorld/Graphics/ScreenReferenceMain scroll.lua b/Themes/HelloWorld/Graphics/ScreenReferenceMain scroll.lua new file mode 100644 index 0000000000..00537338e2 --- /dev/null +++ b/Themes/HelloWorld/Graphics/ScreenReferenceMain scroll.lua @@ -0,0 +1,34 @@ +local gc = Var("GameCommand") +local itemName = gc:GetName() + +local t = Def.ActorFrame{ + -- focused frame + LoadActor( THEME:GetPathG("SectionMenu","ItemFocused") )..{ + GainFocusCommand=cmd(decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0); + }; + -- unfocused + LoadActor( THEME:GetPathG("SectionMenu","ItemUnfocused") )..{ + GainFocusCommand=cmd(decelerate,0.5;diffusealpha,0); + LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,1); + }; + + Def.ActorFrame{ + LoadFont("_frutiger roman 24px")..{ + Name="SectionName"; + Text=THEME:GetString("ScreenReferenceMain",itemName); + InitCommand=cmd(x,-250;y,-6;halign,0;diffuse,color("#222222FF")); + GainFocusCommand=cmd(decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0.5); + }; + LoadFont("_frutiger roman 24px")..{ + Name="SectionDesc"; + Text=THEME:GetString("ScreenReferenceMain",itemName.."Desc"); + InitCommand=cmd(x,-248;y,10;align,0,0;diffuse,color("#222222FF");zoom,0.5); + GainFocusCommand=cmd(decelerate,0.5;diffusealpha,1); + LoseFocusCommand=cmd(stoptweening;decelerate,0.5;diffusealpha,0.5); + }; + }; +}; + +return t; \ No newline at end of file diff --git a/Themes/HelloWorld/Graphics/ScreenWithMenuElements header.lua b/Themes/HelloWorld/Graphics/ScreenWithMenuElements header.lua new file mode 100644 index 0000000000..71b91300bd --- /dev/null +++ b/Themes/HelloWorld/Graphics/ScreenWithMenuElements header.lua @@ -0,0 +1,4 @@ +-- temporary +local t = Def.ActorFrame{}; + +return t; \ No newline at end of file diff --git a/Themes/HelloWorld/Graphics/SectionMenu ItemFocused.png b/Themes/HelloWorld/Graphics/SectionMenu ItemFocused.png new file mode 100644 index 0000000000..c2340e1f3d Binary files /dev/null and b/Themes/HelloWorld/Graphics/SectionMenu ItemFocused.png differ diff --git a/Themes/HelloWorld/Graphics/SectionMenu ItemUnfocused.png b/Themes/HelloWorld/Graphics/SectionMenu ItemUnfocused.png new file mode 100644 index 0000000000..77cd6b9733 Binary files /dev/null and b/Themes/HelloWorld/Graphics/SectionMenu ItemUnfocused.png differ diff --git a/Themes/HelloWorld/Languages/en.ini b/Themes/HelloWorld/Languages/en.ini index 3fea1a2d15..6f6c82d8a1 100644 --- a/Themes/HelloWorld/Languages/en.ini +++ b/Themes/HelloWorld/Languages/en.ini @@ -4,4 +4,37 @@ WindowTitle=Hello World (and other sm-ssc theming examples) [ScreenTitleMenu] Guide=Guide Reference=Reference -Tutorial=Tutorial Series \ No newline at end of file +Tutorial=Tutorial Series + +[ScreenGuideMain] +Header=Guide +Explanation=need to write this still + +Metrics=Metrics +MetricsDesc=Mertics +Fonts=Fonts +FontsDesc=Fnots +Graphics=Graphics +GraphicsDesc=G-rap-hics +BGAnims=BGAnims +BGAnimsDesc=Bee Gees animations +Sounds=Sounds +SoundsDesc=Snouds +Scripts=Scripts +ScriptsDesc=Scrips +Other=Other +OtherDesc=Otter +NoteSkins=NoteSkins +NoteSkinsDesc=NotSkins +Announcers=Announcers +AnnouncersDesc=Talky guys +Characters=Characters +CharactersDesc=Dancy people + +[ScreenReferenceMain] +Screens=Screens +ScreensDesc=all da screens +Managers=Managers +ManagersDesc=stepmania was built off of the principles of DDR and Mega Man. +Classes=Classes +ClassesDesc=no you don't have to go back to school! \ No newline at end of file diff --git a/Themes/HelloWorld/_assets/SectionMenu item.psd b/Themes/HelloWorld/_assets/SectionMenu item.psd new file mode 100644 index 0000000000..e8bcee4f06 Binary files /dev/null and b/Themes/HelloWorld/_assets/SectionMenu item.psd differ diff --git a/Themes/HelloWorld/metrics.ini b/Themes/HelloWorld/metrics.ini index 9746eeed3e..78cb6298be 100644 --- a/Themes/HelloWorld/metrics.ini +++ b/Themes/HelloWorld/metrics.ini @@ -12,6 +12,27 @@ # It can either be a string or a Lua function that returns a string. InitialScreen="ScreenTitleMenu" +################################################################################ +# [base] Base Screens aren't concrete, but are referenced by concrete screens. + +# Pretty much every screen derives from this one. Adding decorations to it is +# one of the first things a themer does. +[ScreenWithMenuElements] +ShowHeader=true +HeaderX=SCREEN_CENTER_X +HeaderY=SCREEN_TOP+24 +HeaderOnCommand=draworder,100 + +ShowFooter=false +FooterX=SCREEN_CENTER_X +FooterY=SCREEN_BOTTOM-24 +FooterOnCommand=draworder,100 + +ShowCreditDisplay=false + +################################################################################ +# [overlay] Overlay screens sit on top of everything. + ################################################################################ # [core] Core Screens; these are the concrete implementations. @@ -24,11 +45,15 @@ PrevScreen="ScreenTitleMenu" IdleTimeoutSeconds=-1 IdleTimeoutScreen="ScreenTitleMenu" +# no header or footer here +ShowHeader=false +ShowFooter=false + # These settings define what options appear on the menu and what commands are # run when they are selected: ChoiceNames="1,2,3,4,5" Choice1="text,Guide;screen,ScreenGuideMain" -Choice2="text,Reference;" +Choice2="text,Reference;screen,ScreenReferenceMain" Choice3="text,Tutorial;" Choice4="text,Options;screen,ScreenOptionsService;" Choice5="text,Exit;screen,ScreenExit;" @@ -52,19 +77,34 @@ PrevScreen="ScreenTitleMenu" Class="ScreenSelectMaster" Fallback="ScreenSelectMaster" PrevScreen="ScreenTitleMenu" +AllowRepeatingInput=true -ChoiceNames="Metrics,Fonts,Graphics,BGAnims,Sounds,Scripts,Other,NoteSkins,Announcers" -ChoiceMetrics="" -ChoiceFonts="" -ChoiceGraphics="" -ChoiceBGAnims="" -ChoiceSounds="" -ChoiceScripts="" -ChoiceOther="" -ChoiceNoteSkins="" -ChoiceAnnouncers="" +# modifying header position +HeaderY=SCREEN_TOP+72 + +ChoiceNames="Metrics,Fonts,Graphics,BGAnims,Sounds,Scripts,Other,NoteSkins,Announcers,Characters" +ChoiceMetrics="name,Metrics" +ChoiceFonts="name,Fonts" +ChoiceGraphics="name,Graphics" +ChoiceBGAnims="name,BGAnims" +ChoiceSounds="name,Sounds" +ChoiceScripts="name,Scripts" +ChoiceOther="name,Other" +ChoiceNoteSkins="name,NoteSkins" +ChoiceAnnouncers="name,Announcers" +ChoiceCharacters="name,Characters" DefaultChoice="Metrics" +ShowScroller=true +LoopScroller=false +PerChoiceScrollElement=false + +ScrollerX=SCREEN_CENTER_X +ScrollerY=SCREEN_CENTER_Y*0.775 +ScrollerNumItemsToDraw=10 +ScrollerSecondsPerItem=0.1 +ScrollerTransform=function(self,offset,itemIndex,numItems) self:y((itemIndex-(numItems/2))+offset*64) end + # guide base screen (sets up things I don't want to retype a lot -aj) # [GuideBase] Class="ScreenSelectMaster" @@ -120,6 +160,26 @@ Fallback="GuideBase" # All reference pages aside from ScreenReferenceMain MUST be prefixed with "Reference" # in order to differentiate them from the core screens. [ScreenReferenceMain] +Class="ScreenSelectMaster" +Fallback="ScreenSelectMaster" +PrevScreen="ScreenTitleMenu" +AllowRepeatingInput=true + +ChoiceNames="Screens,Managers,Classes" +ChoiceScreens="name,Screens" +ChoiceManagers="name,Managers" +ChoiceClasses="name,Classes" +DefaultChoice="Screens" + +ShowScroller=true +LoopScroller=false +PerChoiceScrollElement=false + +ScrollerX=SCREEN_CENTER_X +ScrollerY=SCREEN_CENTER_Y+32 +ScrollerNumItemsToDraw=10 +ScrollerSecondsPerItem=0.1 +ScrollerTransform=function(self,offset,itemIndex,numItems) self:y((itemIndex-(numItems/2))*64) end # reference base screen (sets up things I don't want to retype a lot -aj) # [ReferenceBase] @@ -134,7 +194,7 @@ Fallback="ReferenceBase" [ReferenceManagers] Fallback="ReferenceBase" -# STEPMANIA ROBOT MASTERS +#@# STEPMANIA ROBOT MASTERS ### ANNOUNCER [man] [ReferenceAnnouncerMan]