This mod doesn't do anything on it's own.
It provides an easy way for modders to add integration with the action menu.
It supports the use of the
- Radial Puppet
- Four Axis Puppet
- Button
- Toggle Button
- Sub Menus
Additionally allows mods to add their menus to a dedicated section on the action menu to prevent clutter.
To use simply add ActionMenuApi to your mods folder and reference it in your project same way as with UIX
- Clone the repo
git clone https://github.com/gompocp/ActionMenuApi.git
- Copy the .dlls from your MelonLoader\Managed folder to the Libs folder
- Build Solution
using ActionMenuApi.Api;
using ActionMenuApi.Pedals;
/*
Code
*/
//Call in OnApplicationStart()
//To add a button to the main page of the action menu
// Page to add to Action for onClick Text Texture locked
VRCActionMenuPage.AddButton(ActionMenuPage.Main, "Button",() => MelonLogger.Msg("Pressed Button"), buttonIcon true);
//To add a toggle to the main page of the action menu
VRCActionMenuPage.AddToggle(ActionMenuPage.Main,"Toggle", testBool, b => testBool = b, toggleIcon);
//To add a radial pedal to the main page of the action menu
VRCActionMenuPage.AddRadialPuppet(ActionMenuPageType.Main, "Radial",f => testFloatValue = f, testFloatValue, radialIcon);
//To add a submenu to the main page of the action menu and add a toggle and button to it
VRCActionMenuPage.AddSubMenu(ActionMenuPageType.Main,
"Sub Menu",
delegate {
MelonLogger.Msg("Sub Menu Opened");
CustomSubMenu.AddButton("Pressed Button In Sub Menu", () => MelonLogger.Msg("Pressed Button In Sub Menu"), buttonIcon);
CustomSubMenu.AddToggle("Sub Menu Toggle",testBool2, b => testBool2 = b, toggleIcon);
},
subMenuIcon
);
When you lock/update a pedal in anyway, you must call either AMUtils.ResetMenu()
or AMUtils.RefreshMenu()
so that these changes will be visible. If you are after locking a submenu its advised that you call AMUtils.ResetMenu()
so that in case the user is already in the submenu it'll pushed them out of it. If you are just locking a button pedal or something, you can just call AMUtils.RefreshMenu()
to rebuild the current action menu submenu.
NOTE FOR PEOPLE USING THE LOCKING FUNCTIONALITY FOR RISKY FUNCTIONS: It is advised that in the case that my reflection to reset/refresh the action menu fails you have a boolean check in the pedal trigger event so that the action can't run anyway if it fails
For a mod example check out the test mod here
Distributed under the GPL-3.0 License. See LICENSE
for more information.
Project Link: https://github.com/gompocp/ActionMenuApi
- XRef method from BenjaminZehowlt
- Knah assetbundle loading example and his solution structure