示例#1
0
    public static void BuildAssetBundles(BuildTarget buildTarget)
    {
        string outputPath = Path.Combine(CPlatform.ABundlesOutputPath, CPlatform.GetPlatformName());

        if (Directory.Exists(outputPath))
        {
            Directory.Delete(outputPath, true);
        }
        Directory.CreateDirectory(outputPath);
        Object[] SelectedAsset = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);

        //		BuildPipeline.BuildAssetBundles(outputPath,SelectedAsset,BuildAssetBundleOptions.None,buildTarget);
//		GenerateVersionConfig (outputPath);
        if (Directory.Exists(Application.streamingAssetsPath + "/QAB"))
        {
            Directory.Delete(Application.streamingAssetsPath + "/QAB", true);
        }
        Directory.CreateDirectory(Application.streamingAssetsPath + "/QAB");
        FileUtil.ReplaceDirectory(CPlatform.ABundlesOutputPath, Application.streamingAssetsPath + "/QAB");
        AssetDatabase.Refresh();
    }
        public override void OnInspectorGUI()
        {
            GUI.changed = false;
            CarbonController mapping = (CarbonController)target;

            EditorGUI.BeginChangeCheck();
            string regex = EditorGUILayout.TextField(new GUIContent("RegEx", "Regular expression used to match joystick names."), mapping.RegEx);

            if (EditorGUI.EndChangeCheck())
            {
                Undo.RecordObject(mapping, "Changed Gamepad RegEx");
                mapping.RegEx = regex;
            }

            EditorGUI.BeginChangeCheck();
            int priority = EditorGUILayout.IntField(new GUIContent("Priority", "Lower values are checked earlier."), mapping.Priority);

            if (EditorGUI.EndChangeCheck())
            {
                Undo.RecordObject(mapping, "Changed Gamepad Priority");
                mapping.Priority = priority;
            }

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.PrefixLabel("Platform");
            EditorGUI.BeginChangeCheck();
            CPlatform platform = (CPlatform)EditorGUILayout.EnumMaskField(mapping.Platform);

            if (EditorGUI.EndChangeCheck())
            {
                Undo.RecordObject(mapping, "Changed Gamepad Platform");
                mapping.Platform = platform;
            }
            EditorGUILayout.EndHorizontal();

            EditorGUI.BeginChangeCheck();
            bool useOnce = EditorGUILayout.Toggle(new GUIContent("Use Once", "Whether this mapping should only be used for one joystick."), mapping.UseOnce);

            if (EditorGUI.EndChangeCheck())
            {
                Undo.RecordObject(mapping, "Changed Gamepad Use Once");
                mapping.UseOnce = useOnce;
            }

            showButtons = EditorGUILayout.Foldout(showButtons, "Buttons");
            if (showButtons)
            {
                EditorGUILayout.BeginVertical();
                for (int i = 0; i < CarbonController.ButtonCount; i++)
                {
                    ButtonMapping btn = mapping.Buttons[i];
                    ButtonMapping tmp = new ButtonMapping(btn);
                    EditorGUI.BeginChangeCheck();
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField(((CButton)i).ToString(), GUILayout.MaxWidth(50f));
                    tmp.Type = (ButtonMapping.ButtonType)EditorGUILayout.EnumPopup(btn.Type, GUILayout.MaxWidth(100f));
                    if (btn.Type == ButtonMapping.ButtonType.Wrapper)
                    {
                        tmp.Key = (KeyCode)EditorGUILayout.EnumPopup(btn.Key, GUILayout.MaxWidth(100f));
                    }
                    else
                    {
                        tmp.Button = Mathf.Clamp(EditorGUILayout.IntField(btn.Button, GUILayout.MaxWidth(100f)), 0, 19);
                    }
                    EditorGUILayout.EndHorizontal();
                    if (EditorGUI.EndChangeCheck())
                    {
                        Undo.RecordObject(mapping, "Changed Button Mapping");
                        btn.CopyFrom(tmp); // copy back
                    }
                }
                EditorGUILayout.EndVertical();
            }

            showAxes = EditorGUILayout.Foldout(showAxes, "Axes");
            if (showAxes)
            {
                EditorGUILayout.BeginVertical();
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("Name", GUILayout.MaxWidth(50f));
                EditorGUILayout.LabelField("Axis", GUILayout.MaxWidth(70f));
                EditorGUILayout.LabelField("Invert", GUILayout.MaxWidth(40f));
                EditorGUILayout.LabelField("Type", GUILayout.MaxWidth(80f));
                EditorGUILayout.EndHorizontal();
                for (int i = 0; i < CarbonController.AxisCount; i++)
                {
                    AxisMapping axis = mapping.Axes[i];
                    AxisMapping tmp  = new AxisMapping(axis);
                    EditorGUI.BeginChangeCheck();
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField(((CAxis)i).ToString(), GUILayout.MaxWidth(50f));
                    if (axis.Type == AxisMapping.AxisType.KeyWrapper || axis.Type == AxisMapping.AxisType.ButtonWrapper2)
                    {
                        EditorGUILayout.LabelField("", GUILayout.MaxWidth(80f));
                    }
                    else if (axis.Type == AxisMapping.AxisType.ButtonWrapper)
                    {
                        tmp.Axis = Mathf.Clamp(EditorGUILayout.IntField(axis.Axis, GUILayout.MaxWidth(80f)), 0, CarbonController.JoystickButtonCount - 1);
                    }
                    else
                    {
                        tmp.Axis = Mathf.Clamp(EditorGUILayout.IntField(axis.Axis, GUILayout.MaxWidth(80f)), 0, CarbonController.InputAxisCount - 1);
                    }
                    tmp.Invert = EditorGUILayout.Toggle(axis.Invert, GUILayout.MaxWidth(20f));
                    tmp.Type   = (AxisMapping.AxisType)EditorGUILayout.EnumPopup(axis.Type, GUILayout.MaxWidth(100f));
                    EditorGUILayout.EndHorizontal();

                    switch (axis.Type)
                    {
                    case AxisMapping.AxisType.KeyWrapper:
                        EditorGUILayout.BeginHorizontal();
                        EditorGUILayout.Space();
                        EditorGUILayout.LabelField("Negative", GUILayout.MaxWidth(60f));
                        tmp.Key1 = (KeyCode)EditorGUILayout.EnumPopup(axis.Key1, GUILayout.MaxWidth(80f));
                        EditorGUILayout.LabelField("Positive", GUILayout.MaxWidth(60f));
                        tmp.Key2 = (KeyCode)EditorGUILayout.EnumPopup(axis.Key2, GUILayout.MaxWidth(80f));
                        EditorGUILayout.EndHorizontal();
                        break;

                    case AxisMapping.AxisType.ButtonWrapper:
                        EditorGUILayout.BeginHorizontal();
                        EditorGUILayout.Space();
                        EditorGUILayout.LabelField("Released", GUILayout.MaxWidth(60f));
                        tmp.Min = EditorGUILayout.FloatField(axis.Min, GUILayout.MaxWidth(40f));
                        EditorGUILayout.LabelField("Pressed", GUILayout.MaxWidth(60f));
                        tmp.Max = EditorGUILayout.FloatField(axis.Max, GUILayout.MaxWidth(40f));
                        EditorGUILayout.EndHorizontal();
                        break;

                    case AxisMapping.AxisType.ButtonWrapper2:
                        EditorGUILayout.BeginHorizontal();
                        EditorGUILayout.Space();
                        EditorGUILayout.LabelField("Negative", GUILayout.MaxWidth(60f));
                        tmp.Axis = Mathf.Clamp(EditorGUILayout.IntField(axis.Axis, GUILayout.MaxWidth(40f)), 0, CarbonController.JoystickButtonCount - 1);
                        EditorGUILayout.LabelField("Positive", GUILayout.MaxWidth(60f));
                        tmp.Alternative = Mathf.Clamp(EditorGUILayout.IntField(axis.Alternative, GUILayout.MaxWidth(40f)), 0, CarbonController.JoystickButtonCount - 1);
                        EditorGUILayout.EndHorizontal();
                        break;

                    case AxisMapping.AxisType.Clamped:
                        EditorGUILayout.BeginHorizontal();
                        EditorGUILayout.Space();
                        EditorGUILayout.LabelField("Min", GUILayout.MaxWidth(40f));
                        tmp.Min = EditorGUILayout.FloatField(axis.Min, GUILayout.MaxWidth(40f));
                        EditorGUILayout.LabelField("Max", GUILayout.MaxWidth(40f));
                        tmp.Max = EditorGUILayout.FloatField(axis.Max, GUILayout.MaxWidth(40f));
                        EditorGUILayout.EndHorizontal();
                        break;
                    }
                    if (EditorGUI.EndChangeCheck())
                    {
                        Undo.RecordObject(mapping, "Changed Axis Mapping");
                        axis.CopyFrom(tmp); // copy back
                    }
                }
                EditorGUILayout.EndVertical();
            }

            if (GUI.changed)
            {
                EditorUtility.SetDirty(target);
            }
        }
示例#3
0
 void OnDestory()
 {
     s_cInstance = null;
 }
示例#4
0
 /// <summary>
 /// Checks if the given <see cref="CPlatform"/> is set in <see cref="Platform"/>.
 /// </summary>
 /// <param name="flag"></param>
 /// <returns></returns>
 private bool Has(CPlatform flag)
 {
     return((Platform & flag) == flag);
 }
示例#5
0
文件: Converter.cs 项目: Solaire/GLC
        /// <summary>
        /// Convert platform and game data from JSON file into the database.
        /// NOTE: Any existing data in the Game and Platform tables will be deleted
        /// </summary>
        /// <returns>True if in 'verify' mode or on conversion success, false on any error during verification/conversion</returns>
        public bool ConvertData()
        {
            bool success = true;

            // Open/create database and clear the Game/Platform tables
            if (Mode == ConvertMode.cModeApply)
            {
                success = CSqlDB.Instance.Open(true) == SQLiteErrorCode.Ok;
                if (!success)
                {
                    CInputOutput.Log("ERROR: Could not open or create the database.");
                    return(success);
                }
                success = CSqlDB.Instance.Execute("DELETE FROM Game; DELETE FROM Platform") == SQLiteErrorCode.Ok; // Delete existing platforms and games
                if (!success)
                {
                    CInputOutput.Log("ERROR: Could not prepare the Platform and Game tables");
                    return(success);
                }
            }

            // Load and log all platforms and games from JSON
            success = CJsonWrapper.ImportFromJSON(new CPlatform(), out List <CGameData.CMatch> matches);
            if (!success)
            {
                CInputOutput.Log("ERROR: Could not load games from the JSON file");
                return(success);
            }
            Dictionary <string, int>  jsonPlatforms = CGameData.GetPlatforms();
            HashSet <CGameData.CGame> jsonAllGames  = CGameData.GetPlatformGameList(CGameData.GamePlatform.All);

            CInputOutput.LogGameData(jsonPlatforms, jsonAllGames);

            // Begin migration here
            if (Mode == ConvertMode.cModeApply)
            {
                // Add platforms to the database
                foreach (KeyValuePair <string, int> platform in jsonPlatforms)
                {
                    if (platform.Key != "All games" &&
                        platform.Key != "Search results" &&
                        platform.Key != "Favourites" &&
                        platform.Key != "New games" &&
                        platform.Key != "Hidden games" &&
                        platform.Key != "Not installed")
                    {
                        CPlatform.InsertPlatform(platform.Key, "");
                    }
                }

                // Get the platforms from the DB (we need the PK)
                Dictionary <string, CPlatform.PlatformObject> dbPlatforms = CPlatform.GetPlatforms();

                // Add the games to the database
                foreach (CGameData.CGame game in jsonAllGames)
                {
                    int        platformFK = (dbPlatforms.ContainsKey(game.PlatformString)) ? dbPlatforms[game.PlatformString].PlatformID : 0;
                    GameObject tmp        = new(platformFK, game.ID, game.Title, game.Alias, game.Launch, game.Uninstaller);
                    CGame.InsertGame(tmp);
                }
                HashSet <CGame.GameObject> dbGames = CGame.GetAllGames();
                success = (success && jsonAllGames.Count == dbGames.Count);
                if (!success)
                {
                    CInputOutput.Log("ERROR: Not all games were migrated to the database");
                }

                CInputOutput.Log((success) ? "SUCCESS" : "FAILURE");
                CInputOutput.Log("Game data migration finished");
                CInputOutput.Log(dbPlatforms.Count + " Platforms added");
                CInputOutput.Log(dbGames.Count + " Games added");
                return(success);
            }
            else
            {
                CInputOutput.Log("Mode is 'verify' - no changes have been made");
                CInputOutput.Log("In order to perform conversion, run the program in 'apply' mode");
            }
            CInputOutput.Log("**** END ****");
            return(success);
        }