Adds animations for Playerbot

Fixes PauseMenu navigation behavior and confirms the menu buttons and page nav to standard
Fixes PauseMenu and OptionMenu menu buttons that were not being set correctly on wake
Fixes logic in the shape editor where it wouldn't add new sequences if you were working off a non-assetId sequence in the sequence list(such as ambient)
This commit is contained in:
JeffR 2022-06-21 00:25:03 -05:00
parent c8ef1c5c85
commit 6d2bfa0368
6 changed files with 84 additions and 53 deletions

View file

@ -10,3 +10,16 @@ singleton TSShapeConstructor(Playerbotdae)
removeRedundantMats = "0";
animFPS = "2";
};
function Playerbotdae::onLoad(%this)
{
%this.addSequence("ambient", "Root", "0", "30", "1", "0");
%this.addSequence("ambient", "Run", "31", "50", "1", "0");
%this.addSequence("ambient", "Back", "51", "70", "1", "0");
%this.addSequence("ambient", "Side", "71", "90", "1", "0");
%this.addSequence("ambient", "Crouch_Root", "91", "120", "1", "0");
%this.addSequence("ambient", "Look", "121", "122", "1", "0");
%this.setSequenceCyclic("Look", "0");
%this.setSequenceBlend("Look", "0", "", "0");
%this.setSequenceBlend("Look", "1", "ambient", "121");
}

View file

@ -110,7 +110,7 @@ function OptionsMenu::onOpen(%this)
OptionsMenuCategoryList.setAsActiveMenuList();
$activeMenuButtonContainer-->button1.set("btn_back", "R", "Reset", "OptionsMenu.resetToDefaults();");
$activeMenuButtonContainer-->button1.disable();
$activeMenuButtonContainer-->button2.disable();
$activeMenuButtonContainer-->button3.set("", "Space", "Apply", "OptionsMenu.apply();");
$activeMenuButtonContainer-->button4.set("btn_a", "", "Select", "OptionsMenu.select();");
$activeMenuButtonContainer-->button5.set("btn_b", "Escape", "Back", %this @ ".navigation.popPage();");
@ -130,7 +130,6 @@ function OptionsMenu::canClose(%this)
if(OptionsMenuSettingsList.isActiveMenuList())
{
OptionsMenuCategoryList.setAsActiveMenuList();
%this.updateSelectButton();
return false;
}
else
@ -168,19 +167,6 @@ function OptionsMenu::select(%this)
if(OptionsMenuCategoryList.isActiveMenuList())
{
OptionsMenuSettingsList.setAsActiveMenuList();
%this.updateSelectButton();
}
}
function OptionsMenu::updateSelectButton(%this)
{
if(OptionsMenuCategoryList.isActiveMenuList())
{
%this-->selectButton.setHidden(false);
}
else if(OptionsMenuSettingsList.isActiveMenuList())
{
%this-->selectButton.setHidden(true);
}
}
@ -763,7 +749,8 @@ function populateGamepadSettingsList()
//
function OptionsMenuList::activateRow(%this)
{
OptionsMenuSettingsList.setFirstResponder();
//OptionsMenuSettingsList.setFirstResponder();
OptionsMenuSettingsList.setAsActiveMenuList();
}
function OptionsMenuSettingsList::setRowEnabled(%this, %row, %status)
@ -798,6 +785,29 @@ function OptionsMenuSettingsList::addOptionRow(%this, %label, %targetPrefVar, %o
%option.targetPrefVar = %targetPrefVar; //create a var-option association
if(%defaultValue $= "")
{
%unappliedPrefIndex = OptionsMenu.unappliedChanges.getIndexFromKey(%targetPrefVar);
if(%unappliedPrefIndex != -1)
{
%value = OptionsMenu.unappliedChanges.getValue(%unappliedPrefIndex);
%defaultValue = strreplace(%value, "\"", "");
}
if(%defaultValue $= "")
{
%sanitizedVar = strReplace(%targetPrefVar, "[", "");
%sanitizedVar = strReplace(%sanitizedVar, "]", "");
%sanitizedVar = strReplace(%sanitizedVar, ",", "_");
%defaultValue = getVariable(%sanitizedVar);
}
}
if(%defaultValue $= "Off" || %defaultValue $= "No")
%defaultValue = "0";
if(%defaultValue $= "On" || %defaultValue $= "Yes")
%defaultValue = "1";
%option.setListSetting(%label, %optionsList, %wrapOptions, %callback, %enabled, %description, %defaultValue);
%this.add(%option);

View file

@ -17,7 +17,7 @@ $guiContent = new GuiControl(PauseMenu) {
isContainer = "1";
canSaveDynamicFields = "1";
};
new GuiControl() {
new GuiControl(PauseMenuButtons) {
position = "162 125";
extent = "700 518";
horizSizing = "center";

View file

@ -7,8 +7,16 @@ function PauseMenu::onWake(%this)
sfxSetChannelVolume( $SimAudioType, $pref::SFX::channelVolume[ 0 ] );
}
PauseMenuList.hidden = false;
PauseButtonHolder.setActive();
PauseMenuInputHandler.setFirstResponder();
%this.resizePages = true;
%this.setRootPage(PauseMenuButtons);
}
function PauseMenuButtons::onOpen(%this)
{
PauseMenuList.clear();
if($Tools::loaded && EditorIsActive())
@ -21,13 +29,39 @@ function PauseMenu::onWake(%this)
%this.addPauseMenuButton("Exit to Desktop", "pauseMenuExitToDesktop();");
PauseMenuList.setAsActiveMenuList();
PauseButtonHolder.setActive();
PauseMenuInputHandler.setFirstResponder();
%this.resizePages = true;
$activeMenuButtonContainer-->button1.disable();
$activeMenuButtonContainer-->button2.disable();
$activeMenuButtonContainer-->button3.disable();
$activeMenuButtonContainer-->button4.set("btn_a", "", "OK", "PauseMenuList.activate();");
$activeMenuButtonContainer-->button5.set("btn_b", "Escape", "Back", "Canvas.popDialog();");
}
function PauseMenuButtons::addPauseMenuButton(%this, %buttonText, %buttonCallback)
{
%newButton = new GuiButtonCtrl() {
text = %buttonText;
groupNum = "-1";
buttonType = "PushButton";
useMouseEvents = "0";
position = "0 0";
extent = "400 55";
minExtent = "8 2";
horizSizing = "right";
vertSizing = "bottom";
profile = "GuiMenuButtonProfile";
visible = "1";
active = "1";
command = %buttonCallback;
tooltipProfile = "GuiToolTipProfile";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
};
PauseMenuList.add(%newButton);
}
function PauseMenu::onSleep(%this)
{
if($Server::ServerType $= "SinglePlayer")
@ -54,35 +88,6 @@ function pauseMenuExitToDesktop()
function PauseButtonHolder::onWake(%this)
{
%this-->button1.disable();
%this-->button2.disable();
%this-->button3.disable();
%this-->button4.set("btn_a", "", "OK", "PauseMenuList.activate();");
%this-->button4.set("btn_b", "Escape", "Back", "Canvas.popDialog();");
}
function PauseMenu::addPauseMenuButton(%this, %buttonText, %buttonCallback)
{
%newButton = new GuiButtonCtrl() {
text = %buttonText;
groupNum = "-1";
buttonType = "PushButton";
useMouseEvents = "0";
position = "0 0";
extent = "400 55";
minExtent = "8 2";
horizSizing = "right";
vertSizing = "bottom";
profile = "GuiMenuButtonProfile";
visible = "1";
active = "1";
command = %buttonCallback;
tooltipProfile = "GuiToolTipProfile";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
};
PauseMenuList.add(%newButton);
}

View file

@ -175,8 +175,11 @@ function UINavigation::popPage(%this, %callback)
}
%newTopPage = %this.getCurrentPage();
if(%newTopPage.isMethod("onOpen"))
%newTopPage.call("onOpen");
if(isObject(%newTopPage))
{
if(%newTopPage.isMethod("onOpen"))
%newTopPage.call("onOpen");
}
if(%callback !$= "")
eval(%callback);

View file

@ -318,7 +318,7 @@ function ShapeEditor::doAddSequence( %this, %seqName, %from, %start, %end )
function ActionAddSequence::doit( %this )
{
if(ShapeEditorPlugin.selectedAssetDef $= "")
if(ShapeEditorPlugin.selectedAssetDef $= "" || !AssetDatabase.isDeclaredAsset(%this.seqName))
{
// If adding this sequence from an existing sequence, make a backup copy of
// the existing sequence first, so we can edit the start/end frames later