/// <summary> /// Loads controller data into memory for a given SDK. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="controllers"></param> /// <param name="controllerName"></param> /// <param name="defaultButtonDefs"></param> /// <param name="fileName"></param> public static string LoadController <T>(ref Dictionary <string, ButtonMapGroup <TBInput.ButtonDef <T> > > controllers, string controllerName, List <TBInput.ButtonDef <T> > defaultButtonDefs, string fileName) { ButtonMapGroup <TBInput.ButtonDef <T> > newController; if (controllers.TryGetValue(controllerName, out newController)) { return(controllerName); } else { newController = new ButtonMapGroup <TBInput.ButtonDef <T> >(); newController.fileName = fileName; newController.controllerName = controllerName; newController.defs = defaultButtonDefs; // If a custom mapping exits, try to use it. if (File.Exists(settingsPath + TBSettings.settingsFolder + newController.fileName + ".json")) { newController.defs = TBInput.LoadButtonDefs(defaultButtonDefs, fileName); TBLogging.LogMessage("Found and loaded button maps for " + controllerName + ".", null, messageEnd); } else { // If no custom mapping, we use the default one. A custom one will be saved if you make any changes. TBLogging.LogMessage("Could not find custom button maps for " + controllerName + " in " + settingsPath + TBSettings.settingsFolder + newController.fileName + ".json. Created new maps from default.", null, messageEnd); } controllers.Add(controllerName, newController); return(controllerName); } }
/// <summary> /// Saves button settings to JSON. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="maps"></param> public static void SaveButtonMaps <T>(ButtonMapGroup <TBInput.ButtonDef <T> > maps) { TBLogging.LogMessage("Writing maps for " + maps.controllerName + " to " + settingsPath + TBSettings.settingsFolder + maps.fileName + ".json...", null, messageEnd); TBInput.SerializedButtonDef[] controllerDef = new TBInput.SerializedButtonDef[maps.defs.Count]; for (int i = 0; i < maps.defs.Count; i++) { controllerDef[i] = new TBInput.SerializedButtonDef(); controllerDef[i].virtualButtons = maps.defs[i].virtualButtons; } //string json = TBDataManager.ToJson<TBInput.SerializedButtonDef>(controllerDef); //TBDataManager.SerializeObjectToFile(TBDataManager.ToJsonWrapper<TBInput.SerializedButtonDef>(controllerDef), settingsPath + TBSettings.settingsFolder + maps.fileName + ".json", TBDataManager.PathType.ResourcesFolder); TBEditorHelper.CheckoutAndSaveJSONFile(settingsPath + TBSettings.settingsFolder + maps.fileName + ".json", TBDataManager.ToJsonWrapper <TBInput.SerializedButtonDef>(controllerDef), TBDataManager.PathType.ResourcesFolder); TBLogging.LogMessage("Finished writing maps for " + maps.controllerName + ". ", null, messageEnd); }