Torque3D/Templates/BaseGame/game/data/UI/guis/mainMenu.tscript

90 lines
2.3 KiB
Text
Raw Normal View History

function MainMenuGui::onAdd(%this)
{
}
function MainMenuGui::onWake(%this)
{
MainMenuButtonList.listPosition = 0;
}
if(!isObject( MainMenuActionMap ) )
{
new ActionMap(MainMenuActionMap){};
MainMenuActionMap.bind( keyboard, w, mainMenuNavigateUp );
MainMenuActionMap.bind( keyboard, s, mainMenuNavigateDown );
MainMenuActionMap.bind( gamepad, yaxis, "D", "-0.23 0.23", mainMenuStickNavigate );
MainMenuActionMap.bind( gamepad, upov, mainMenuNavigateUp );
MainMenuActionMap.bind( gamepad, dpov, mainMenuNavigateDown );
MainMenuActionMap.bind( keyboard, Enter, activateSelected );
MainMenuActionMap.bind( gamepad, btn_a, activateSelected );
}
function mainMenuNavigateUp(%val)
{
if(%val)
{
MainMenuButtonList.listPosition -= 1;
if(MainMenuButtonList.listPosition < 0)
MainMenuButtonList.listPosition = 0;
MainMenuGUI.syncGUI();
}
}
function mainMenuNavigateDown(%val)
{
if(%val)
{
MainMenuButtonList.listPosition += 1;
if(MainMenuButtonList.listPosition >= MainMenuButtonList.getCount())
MainMenuButtonList.listPosition = MainMenuButtonList.getCount()-1;
MainMenuGUI.syncGUI();
}
}
function mainMenuStickNavigate(%val)
{
if(%val == -1)
mainMenuNavigateUp(1);
else if(%val == 1)
mainMenuNavigateDown(1);
}
function MainMenuGUI::syncGUI(%this)
{
MainMenuButtonList.callOnChildren("setHighlighted", false);
%btn = MainMenuButtonList.getObject(MainMenuButtonList.listPosition);
%btn.setHighlighted(true);
//
//Update the button imagery to comply to the last input device we'd used
%device = Canvas.getLastInputDevice();
if(%device $= "mouse")
%device = "keyboard";
%binding = MainMenuActionMap.getBinding("activateSelected");
%bindingCount = getFieldCount(%binding);
for(%i=0; %i < %bindingCount; %i+=2)
{
%mapDevice = stripTrailingNumber(getField(%binding, %i));
if(%mapDevice $= %device)
{
%button = getField(%binding, %i+1);
break;
}
}
%assetId = getButtonBitmap(%device, %button);
MainMenuGoButton.setBitmap(%assetId);
}
function activateSelected()
{
%btn = MainMenuButtonList.getObject(MainMenuButtonList.listPosition);
%btn.performClick();
}