Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <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);
        }