@ -45,6 +45,7 @@ INCLUDE_ITEM_DATA
using A = Attribute ;
void Menu : : InitializeConsumableCraftItemWindow ( ) {
static bool incrementButtonDisabled = false ;
Menu * consumableCraftItemWindow = CreateMenu ( CONSUMABLE_CRAFT_ITEM , CENTERED , { 240 , 96 } ) ;
consumableCraftItemWindow - > ADD ( " Item Name Header " , MenuLabel ) ( geom2d : : rect < float > { { 2 , - 4 } , { consumableCraftItemWindow - > size . x - 4 , 12 } } , " Item Name " , 1.0f , ComponentAttr : : SHADOW | ComponentAttr : : OUTLINE | ComponentAttr : : BACKGROUND ) END ;
@ -71,12 +72,18 @@ void Menu::InitializeConsumableCraftItemWindow(){
consumableCraftItemWindow - > ADD ( " Increase Craft amount Button " , MenuComponent ) ( geom2d : : rect < float > { { consumableCraftItemWindow - > size . x / 2 + 80 + 2 , 34 } , { 12 , 12 } } , " + " , [ & ] ( MenuFuncData data ) {
uint8_t qty = std : : clamp ( GetQuantity ( ) + 1 , 1 , 99 ) ;
if ( ! incrementButtonDisabled ) {
Component < MenuLabel > ( CONSUMABLE_CRAFT_ITEM , " Amount to Craft Amount Label " ) - > SetLabel ( std : : to_string ( qty ) ) ;
}
incrementButtonDisabled = false ;
return true ;
} ) END ;
consumableCraftItemWindow - > ADD ( " Decrease Craft amount Button " , MenuComponent ) ( geom2d : : rect < float > { { consumableCraftItemWindow - > size . x / 2 + 48 - 14 , 34 } , { 12 , 12 } } , " - " , [ ] ( MenuFuncData data ) {
uint8_t qty = std : : clamp ( GetQuantity ( ) - 1 , 1 , 99 ) ;
if ( ! incrementButtonDisabled ) {
Component < MenuLabel > ( CONSUMABLE_CRAFT_ITEM , " Amount to Craft Amount Label " ) - > SetLabel ( std : : to_string ( qty ) ) ;
}
incrementButtonDisabled = false ;
return true ;
} ) END ;
@ -97,4 +104,83 @@ void Menu::InitializeConsumableCraftItemWindow(){
data . component . lock ( ) - > SetGrayedOut ( ! item . lock ( ) - > CanEnhanceItem ( qty ) ) ;
return true ;
} ) END ;
consumableCraftItemWindow - > SetupKeyboardNavigation (
[ ] ( MenuType type , Data & returnData ) { //On Open
if ( Component < MenuComponent > ( type , " Craft Button " ) - > IsGreyedOut ( ) ) {
returnData = " Back Button " ;
} else {
returnData = " Craft Button " ;
}
} ,
{ //Button Key
{ game - > KEY_START , { [ ] ( MenuFuncData data ) {
if ( Component < MenuComponent > ( data . menu . GetType ( ) , " Craft Button " ) - > IsGreyedOut ( ) ) {
return " " ;
} else {
return " Craft Button " ;
}
} , [ ] ( MenuType type ) {
Component < MenuComponent > ( type , " Craft Button " ) - > Click ( ) ;
} } } ,
{ { game - > KEY_SHOULDER , Pressed } , { " Qty Up/Down " , [ ] ( MenuType type ) { } } } ,
{ { game - > KEY_FASTSCROLLDOWN , PressedDAS } , { " " , [ ] ( MenuType type ) {
Component < MenuComponent > ( type , " Increase Craft amount Button " ) - > Click ( ) ;
if ( Component < MenuComponent > ( type , " Craft Button " ) - > IsGreyedOut ( ) ) {
Component < MenuComponent > ( type , " Decrease Craft amount Button " ) - > Click ( ) ;
}
} } } ,
{ { game - > KEY_FASTSCROLLUP , PressedDAS } , { " " , [ ] ( MenuType type ) {
bool foundValidAmt = ! Component < MenuComponent > ( type , " Craft Button " ) - > IsGreyedOut ( ) ;
Component < MenuComponent > ( type , " Decrease Craft amount Button " ) - > Click ( ) ;
if ( foundValidAmt & & Component < MenuComponent > ( type , " Craft Button " ) - > IsGreyedOut ( ) ) {
Component < MenuComponent > ( type , " Increase Craft amount Button " ) - > Click ( ) ;
}
} } } ,
{ { game - > KEY_SCROLL , Pressed } , { " Navigate " , [ ] ( MenuType type ) { } } } ,
{ game - > KEY_BACK , { " Back " , [ ] ( MenuType type ) {
Menu : : CloseMenu ( ) ;
} } } ,
{ { game - > KEY_CONFIRM , PressedDAS } , { " " , [ ] ( MenuType type ) {
if ( Menu : : menus [ type ] - > GetSelection ( ) . expired ( ) ) return ;
incrementButtonDisabled = false ;
if ( Menu : : menus [ type ] - > GetSelection ( ) . lock ( ) - > GetName ( ) = = " Increase Craft amount Button " ) {
Component < MenuComponent > ( type , " Increase Craft amount Button " ) - > Click ( ) ;
if ( Component < MenuComponent > ( type , " Craft Button " ) - > IsGreyedOut ( ) ) {
Component < MenuComponent > ( type , " Decrease Craft amount Button " ) - > Click ( ) ;
}
} else
if ( Menu : : menus [ type ] - > GetSelection ( ) . lock ( ) - > GetName ( ) = = " Decrease Craft amount Button " ) {
bool foundValidAmt = ! Component < MenuComponent > ( type , " Craft Button " ) - > IsGreyedOut ( ) ;
Component < MenuComponent > ( type , " Decrease Craft amount Button " ) - > Click ( ) ;
if ( foundValidAmt & & Component < MenuComponent > ( type , " Craft Button " ) - > IsGreyedOut ( ) ) {
Component < MenuComponent > ( type , " Increase Craft amount Button " ) - > Click ( ) ;
}
}
incrementButtonDisabled = true ; //We handled the clicks ourselves, we don't want it to cause another click on release.
} } } ,
{ game - > KEY_CONFIRM , { " Select " , [ ] ( MenuType type ) { } } } ,
}
, { //Button Navigation Rules
{ " Back Button " , {
. up = " Decrease Craft amount Button " ,
. down = " Decrease Craft amount Button " ,
. left = " Craft Button " ,
. right = " Craft Button " , } } ,
{ " Craft Button " , {
. up = " Increase Craft amount Button " ,
. down = " Increase Craft amount Button " ,
. left = " Back Button " ,
. right = " Back Button " , } } ,
{ " Increase Craft amount Button " , {
. up = " Craft Button " ,
. down = " Craft Button " ,
. left = " Decrease Craft amount Button " ,
. right = " Decrease Craft amount Button " , } } ,
{ " Decrease Craft amount Button " , {
. up = " Back Button " ,
. down = " Back Button " ,
. left = " Increase Craft amount Button " ,
. right = " Increase Craft amount Button " , } } ,
} ) ;
}