Пример #1
0
        public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
        {
            ArcadeAttribute arcadeAttribute = attribute as ArcadeAttribute;

            position.width = position.width - arcadeAttribute.width - 16;
            EditorGUI.PropertyField(position, property, label);
            position.x     = position.x + position.width;
            position.width = arcadeAttribute.width + 16;

            if (GUI.Button(position, arcadeAttribute.label))
            {
                ModelSetup obj = property.serializedObject.targetObject as ModelSetup;
                //  if (obj == null) { return; }
                //Debug.Log("I belong to " + obj.descriptiveName);
                if (arcadeAttribute.label == "Model")
                {
                    EditorModelSetupSelectModel.ShowWindow(obj.transform.gameObject);
                }
                if (arcadeAttribute.label == "Emulator")
                {
                    if (ArcadeManager.emulatorsConfigurationList.Count < 1)
                    {
                        if (!ArcadeManager.loadSaveEmulatorConfiguration.LoadEmulatorsConfigurationList())
                        {
                            return;
                        }
                    }
                    EditorModelSetupEmulator.ShowWindow(obj.transform.gameObject);
                }
                if (arcadeAttribute.label == "Game")
                {
                    EmulatorConfiguration emulatorConfiguration = ArcadeManager.loadSaveEmulatorConfiguration.GetEmulatorConfiguration(obj.emulator);
                    if (emulatorConfiguration != null)
                    {
                        List <ModelProperties> gamelist = emulatorConfiguration.masterGamelist;
                        EditorModelSetupGame.ShowWindow(obj.transform.gameObject, gamelist);
                    }
                }
                if (arcadeAttribute.label == "Folder")
                {
                    string folder = FileManager.DialogGetFolderPath(true);
                    if (folder != null)
                    {
                        property.stringValue = folder;
                    }
                }
                if (arcadeAttribute.label == "Exe")
                {
                    string exe = FileManager.DialogGetFilePart("Select LibretroCore Executable", null, FileManager.FilePart.Name_Extension);
                    if (exe != null)
                    {
                        property.stringValue = exe;
                    }
                }
            }
        }
Пример #2
0
        public override void OnInspectorGUI()
        {
            GUILayout.Space(8f);
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("EMULATOR PROPERTIES", EditorStyles.boldLabel);
            EditorGUILayout.EndHorizontal();
            GUILayout.Space(8f);

            DrawDefaultInspector();

            GUILayout.Space(8f);
            EditorGUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Delete Emulator Configuration", GUILayout.Width(200), GUILayout.Height(EditorGUIUtility.singleLineHeight)))
            {
                DestroyImmediate(EmulatorSetupScript);
                ArcadeManager.loadSaveEmulatorConfiguration.SaveEmulators();
                ArcadeManager.loadSaveEmulatorConfiguration.LoadEmulators();
            }
            GUILayout.FlexibleSpace();
            EditorGUILayout.EndHorizontal();
            GUILayout.Space(8f);
            EditorGUILayout.BeginHorizontal();
            GUIStyle guiStyle = new GUIStyle();

            guiStyle.wordWrap = true;
            GUILayout.Label("Load, Save and Add Emulator Configurations from the 3DArcade Menu.", guiStyle);
            EditorGUILayout.EndHorizontal();

            GUILayout.Space(16f);
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("MASTER GAMELIST", EditorStyles.boldLabel);
            EditorGUILayout.EndHorizontal();

            GUILayout.Space(8f);
            EditorGUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Select", GUILayout.Width(80), GUILayout.Height(EditorGUIUtility.singleLineHeight)))
            {
                EditorEmulatorSetupSelectMasterGamelist.ShowWindow(EmulatorSetupScript);
            }
            if (GUILayout.Button("Update", GUILayout.Width(80), GUILayout.Height(EditorGUIUtility.singleLineHeight)))
            {
                EmulatorConfiguration emulatorConfiguration = ArcadeManager.loadSaveEmulatorConfiguration.GetEmulatorConfiguration(EmulatorSetupScript.id);
                if (emulatorConfiguration != null)
                {
                    emulatorConfiguration = UpdateMasterGamelists.UpdateMasterGamelistFromEmulatorConfiguration(emulatorConfiguration);
                    ArcadeManager.loadSaveEmulatorConfiguration.SaveEmulatorConfiguration(emulatorConfiguration);
                }
            }
            if (GUILayout.Button("Show", GUILayout.Width(80), GUILayout.Height(EditorGUIUtility.singleLineHeight)))
            {
                EmulatorConfiguration emulatorConfiguration = ArcadeManager.loadSaveEmulatorConfiguration.GetEmulatorConfiguration(EmulatorSetupScript.id);
                if (emulatorConfiguration != null)
                {
                    List <ModelProperties> gamelist = emulatorConfiguration.masterGamelist;
                    EditorModelSetupGame.ShowWindow(EmulatorSetupScript.transform.gameObject, gamelist);
                }
            }
            GUILayout.FlexibleSpace();
            EditorGUILayout.EndHorizontal();
        }