-
Notifications
You must be signed in to change notification settings - Fork 0
Home
There are 3 sources of documentation: this Wiki page, example mod, and XML file (see bellow).
For external mods that want to register UUI buttons please look at the example mod:
- https://github.com/ssv2/Skylines-UnifiedUI/blob/master/ExampleMod/ExampleMod.cs#L79
- https://github.com/ssv2/Skylines-UnifiedUI/blob/master/ExampleMod/UIKeymappingsPanel.cs#L27
If needed, please contact me on discord to ask about your specific use case.
You can download the library UnifiedUILib.dll
and its documentation UnifiedUILib.xml
from:
- the Steam WS mod page
- the Releases here on github
a 40x40 foreground icon texture with transparent background to blend into background texture such as Hovered, Pressed, and Normal.
using UnifiedUI.Helpers;
string iconPath = UserMod.instance.GetFullPath("Resources", "icon.png"); // returns Path/To/Mod/Resources/icon.png
var button = UUIHelpers.RegisterToolButton(
name: "MyModButton",
groupName: null, // default group
tooltip: "some tooltip",
tool: mytool,
icon: UUIHelpers.LoadTexture(iconPath),
hotkeys: new UUIHotKeys { ActivationKey= ModSettings.Hotkey });
- pressing the ActivationHotkey enables your mod (your mod should not handle the hotkey anymore).
- if your tool is active, UUI will prevent other mods from using their
activationKey
if it collides with yourIn tool HotKey
- HotKeys may be modified in UUI, so don't forget to add the following line: UIKeymappingsPanel.cs:27
User may change keybind inside UUI settings to resolve hotkey conflict with another mod. Therefore your code needs to update the keybind text when this happens. Use this code: https://github.com/ssv2/Skylines-UnifiedUI/blob/master/ExampleMod/UIKeymappingsPanel.cs#L27
using UnifiedUI.Helpers;
string iconPath = UserMod.instance.GetFullPath("Resources", "icon.png"); // returns Path/To/Mod/Resources/icon.png
var customButton = UUIHelpers.RegisterCustomButton(
name: "MyModButton",
groupName: null, // default group
tooltip: "some tooltip",
icon: UUIHelpers.LoadTexture(iconPath),
onToggle:(value)=> value ? MyWindow.Open() : MyWindow.Close();
onToolChanged: null,
hotkeys: new UUIHotKeys { ActivationKey= ModSettings.Hotkey });
MyWindow.Start() => customButton.IsActive = true;
MyWindow.OnDestroy() => customButton.IsActive = false;
If you do not wish to register button and only wish to register hotkeys.
var activeKeys = new Dictionary<SavedInputKey, Func<bool>>(){
{hotkey1,()=>true},
{hotkey2,()=>true},
}
UUIHelpers.RegisterHotkeys(
onToggle: ToggleMod,
activationKey: new SavedInputKey(...),
activeKeys: activeKeys );