// --- Fields ---
private JSONStorableUrl _presetUrl;
private JSONStorableActionPresetFilePath _loadPresetAction;
// --- Init ---
public override void Init()
{
CreatePresetPicker();
}
// --- Picker + Trigger Action ---
private void CreatePresetPicker()
{
string presetDir = SuperController.singleton.currentSaveDir + "/Custom/PluginData/MyPlugin/Presets";
Directory.CreateDirectory(presetDir);
_presetUrl = new JSONStorableUrl("presetPath", string.Empty, "json", presetDir);
_presetUrl.allowFullComputerBrowse = false;
_presetUrl.allowBrowseAboveSuggestedPath = false;
_presetUrl.hideExtension = true;
_presetUrl.showDirs = true;
_loadPresetAction = new JSONStorableActionPresetFilePath(
"LoadPreset",
HandleLoadPreset,
_presetUrl
);
RegisterUrl(_presetUrl);
RegisterPresetFilePathAction(_loadPresetAction);
}
// --- Callback when trigger fires ---
private void HandleLoadPreset(string path)
{
if (string.IsNullOrEmpty(path)) return;
JSONClass data = LoadJSON(path).AsObject;
// Apply your preset data here
SuperController.LogMessage("Loaded preset: " + path);
}