Exemplo n.º 1
0
 /// <summary>
 /// Local files section
 /// Upload or delete a particulary local file
 /// Upload all local files
 /// </summary>
 void UploadLogs()
 {
     EditorGUILayout.HelpBox("All Local Files", MessageType.None);
     GUITools.ActionButton("Send all logs to FTP", Saver.UploadAllFilesToFTP, Color.white, Color.black);
     EditorGUILayout.Space();
     ScrollVector = EditorGUILayout.BeginScrollView(ScrollVector);
     for (int i = 0; i < LocalFilesInfos.Count; i++)
     {
         EditorGUILayout.BeginHorizontal();
         EditorGUILayout.HelpBox(LocalFilesInfos[i].LogName, MessageType.None);
         GUITools.ActionButton("Open", OpenFile, LocalFilesInfos[i].LogName, Color.green, Color.black);
         if (!LocalFilesInfos[i].IsLoading)
         {
             GUITools.ActionButton("Upload", Saver.UploadFileToFTP, LocalFilesInfos[i], Color.cyan, Color.black);
         }
         else
         {
             EditorGUILayout.HelpBox("Uploading", MessageType.None);
         }
         GUITools.ActionButton("X", DeleteLocalLog, i, Color.red, Color.black);
         EditorGUILayout.EndHorizontal();
     }
     EditorGUILayout.EndScrollView();
     EditorGUILayout.Space();
     GUITools.ActionButton("Open Folder", OpenLocalFolder, Color.white, Color.black);
 }
Exemplo n.º 2
0
    /// <summary>
    /// Enable Logs
    /// Show every user and its settings
    /// </summary>
    public override void OnInspectorGUI()
    {
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.HelpBox("Enable ALL logs", MessageType.None);
        p_target.EnableAllLogs = EditorGUILayout.Toggle(p_target.EnableAllLogs);
        EditorGUILayout.EndHorizontal();
        //
        EditorGUILayout.Space();
        //
        if (p_target.AllUsers.Count > 0)
        {
            for (int i = 0; i < p_target.AllUsers.Count; i++)
            {
                DrawUserSettings(p_target.AllUsers[i]);
                GUITools.ActionButton("X Delete user", p_target.RemoveUser, i, Color.red, Color.black);
                EditorGUILayout.Space();
            }
        }
        EditorGUILayout.Space();
        EditorGUILayout.Space();

        tmpName = EditorGUILayout.TextField(tmpName);
        GUITools.ActionButton("+ Add User", AddUser, Color.green, Color.black);
        EditorGUILayout.Space();
    }
    /// <summary>
    /// Display settings
    /// </summary>
    void DrawSettings()
    {
        // Draw a header for the Spawner Area global settings
        EditorGUILayout.LabelField("Global settings", TDS_EditorUtility.HeaderStyle);
        TDS_EditorUtility.Toggle("is Looping", "Is the area start again when all the waves are cleared.", isLooping);
        TDS_EditorUtility.Toggle("Is Activated by event", "Does the area start by event or by trigger.", isActivatedByEvent);
        GUILayout.Space(10);


        EditorGUILayout.BeginHorizontal();
        if (TDS_EditorUtility.Button("WAVES", "Wrap / Unwrap Waves", TDS_EditorUtility.HeaderStyle))
        {
            AreWavesUnfolded = !areWavesUnfolded;
        }

        GUITools.ActionButton("Add Wave", waves.InsertArrayElementAtIndex, waves.arraySize, Color.white, Color.white);
        EditorGUILayout.EndHorizontal();
        if (areWavesUnfolded)
        {
            for (int i = 0; i < waves.arraySize; i++)
            {
                GUILayout.Space(10);
                DrawWave(i);
            }
        }
    }
Exemplo n.º 4
0
 void ManageObjects()
 {
     for (int t = 0; t < p_target.AllSpritesToMove.Count; t++)
     {
         EditorGUILayout.BeginHorizontal();
         EditorGUILayout.ObjectField(p_target.AllSpritesToMove[t], typeof(Sprite), true);
         GUITools.ActionButton("X", p_target.RemoveSpriteAt, t, Color.red, Color.black);
         EditorGUILayout.EndHorizontal();
     }
 }
Exemplo n.º 5
0
 public override void OnInspectorGUI()
 {
     DropAeraGUI();
     ManageObjects();
     EditorGUILayout.Space();
     EditorGUILayout.Space();
     GUITools.ActionButton("Rotate sprites", MakeSpriteRotate, Color.yellow, Color.black);
     EditorGUILayout.Space();
     EditorGUILayout.Space();
     GUITools.ActionButton("Clear", p_target.RemoveAllSprites, Color.red, Color.black);
 }
Exemplo n.º 6
0
    public override void OnInspectorGUI()
    {
        if (p_target.AllLogs.Count > 0)
        {
            GUITools.ActionButton("Save last log entry", p_target.SaveLogs, Color.white, Color.black);
        }

        EditorGUILayout.HelpBox("Log entries ", MessageType.None);
        GUITools.ActionButton("Local log entries", OpenLogsWindow, LogType.Local, Color.white, Color.black);
        GUITools.ActionButton("FTP log entries", OpenLogsWindow, LogType.OnServer, Color.white, Color.black);
    }
Exemplo n.º 7
0
    void DrawNavMeshBuilder()
    {
        EditorGUILayout.HelpBox("Custom Nav Mesh Baking\nSet NavSurfaces on the scene to bake the custom NavMesh", MessageType.None);
        GUITools.ActionButton("Bake NavPoints from MeshSurfaces", p_target.GetNavPointsFromNavSurfaces, Color.white, Color.black);
        GUITools.ActionButton("Clear NavMesh", p_target.ClearNavDatas, Color.white, Color.black);
        GUITools.ActionButton("Save Datas", p_target.SaveDatas, Color.white, Color.black);
        GUITools.ActionButton("Open Saving Folder", p_target.OpenDirectory, Color.white, Color.black);

        EditorGUILayout.Space();
        p_target.ShowVertices = EditorGUILayout.Toggle("Show Vertices", p_target.ShowVertices);
        p_target.ShowSegments = EditorGUILayout.Toggle("Show Segment", p_target.ShowSegments);
        p_target.ShowMiddle   = EditorGUILayout.Toggle("Show Middle", p_target.ShowMiddle);
        p_target.ShowLinks    = EditorGUILayout.Toggle("Show Links", p_target.ShowLinks);
    }
Exemplo n.º 8
0
 /// <summary>
 /// FTP Files section
 /// Download a particulary file
 /// Download all files
 /// </summary>
 void DownLoadLogs()
 {
     EditorGUILayout.HelpBox("All FTP Files", MessageType.None);
     GUITools.ActionButton("Download all logs", Saver.DownloadAllFilesFromFTP, Color.white, Color.black);
     EditorGUILayout.Space();
     ScrollVector = EditorGUILayout.BeginScrollView(ScrollVector);
     for (int i = 0; i < FTPFilesInfos.Count; i++)
     {
         GUITools.ActionButton(FTPFilesInfos[i], Saver.DownloadFileFromFTP, FTPFilesInfos[i], Color.cyan, Color.black);
     }
     EditorGUILayout.EndScrollView();
     EditorGUILayout.Space();
     GUITools.ActionButton("Update logs on FTP", Saver.GetAllFTPFilesNames, Color.white, Color.black);
 }
Exemplo n.º 9
0
    /// <summary>
    /// Draw the split settings
    /// </summary>
    private void DrawSplittingSettings()
    {
        if (IsEnemyUnfolded)
        {
            EditorGUILayout.Space();

            EditorGUILayout.BeginVertical("Box");

            //Draw a header for the enemy spinning settings
            if (TDS_EditorUtility.Button("Splitting Enemies", "Wrap / unwrap splitting enemies", TDS_EditorUtility.HeaderStyle))
            {
                AreSplittingSettingsUnfolded = !areSplittingSettingsUnfolded;
            }
            if (areSplittingSettingsUnfolded)
            {
                EditorGUILayout.Space();
                for (int i = 0; i < splitingEnemiesNames.arraySize; i++)
                {
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField(splitingEnemiesNames.GetArrayElementAtIndex(i).stringValue, TDS_EditorUtility.HeaderStyle);
                    GUITools.ActionButton("X", RemoveSettingsAtIndex, i, Color.white, Color.black, "Remove this spliting enemy");
                    Repaint();
                    serializedObject.ApplyModifiedProperties();
                    EditorGUILayout.EndHorizontal();
                }
                EditorGUILayout.Space();

                TDS_Enemy _e = null;
                _e = EditorGUILayout.ObjectField("Add Splitting Enemy", _e, typeof(TDS_Enemy), false) as TDS_Enemy;
                if (_e != null)
                {
                    splitingEnemiesNames.InsertArrayElementAtIndex(0);
                    splitingEnemiesNames.GetArrayElementAtIndex(0).stringValue = _e.EnemyName;
                    splitingPosition.InsertArrayElementAtIndex(0);
                    splitingPosition.GetArrayElementAtIndex(0).vector3Value = Vector3.forward;
                    Repaint();
                }
                EditorGUILayout.Space();

                TDS_EditorUtility.ObjectField("Splitting Portrait", "Portrait of the splitting enemies", splittingPortrait, typeof(GameObject));
                serializedObject.ApplyModifiedProperties();
            }
            EditorGUILayout.EndVertical();
            EditorGUILayout.Space();
        }
    }
Exemplo n.º 10
0
    private void OnGUI()
    {
        switch (CurrentType)
        {
        case LogType.Local:
            UploadLogs();
            break;

        case LogType.OnServer:
            DownLoadLogs();
            break;

        default:
            break;
        }
        GUITools.ActionButton("Close", Close, Color.red, Color.black);
    }
Exemplo n.º 11
0
 /// <summary>
 /// Show the point manager settings
 /// Edit its position
 /// Edit all waves in the manager
 /// </summary>
 void ShowPointManagerSettings()
 {
     GUI.color = Color.red;
     EditorGUILayout.HelpBox("Point Manager Settings", MessageType.None);
     GUI.color = Color.white;
     p_target.PointsManager.Position = EditorGUILayout.Vector3Field("Manager Position", p_target.PointsManager.Position);
     GUI.color = Color.cyan;
     EditorGUILayout.HelpBox("WAVES", MessageType.None);
     for (int i = 0; i < p_target.PointsManager.AllWavePoints.Count; i++)
     {
         ShowWaveSettings(p_target.PointsManager.AllWavePoints[i]);
         GUITools.ActionButton("Remove Wave point", RemoveWavePoint, i, Color.white, Color.black);
         EditorGUILayout.Space();
     }
     EditorGUILayout.Space();
     GUITools.ActionButton("Add Wave point", p_target.PointsManager.AddWavePoint, Color.white, Color.black);
 }
Exemplo n.º 12
0
    private void OnGUI()
    {
        WavePoint.Position = EditorGUILayout.Vector3Field("Point Position", WavePoint.Position);

        WavePoint.Range = EditorGUILayout.Slider("Spawn Range", WavePoint.Range, 1, 10);

        WavePoint.WaveNumber = EditorGUILayout.IntField("Wave Number", WavePoint.WaveNumber);

        // STATIC WAVE ELEMENT
        ShowWaveElementSettings(WavePoint.StaticWaveElement);
        EditorGUILayout.Space();

        // RANDOM WAVE ELEMENT
        ShowWaveElementSettings(WavePoint.RandomWaveElement);
        EditorGUILayout.Space();

        GUITools.ActionButton("Close", Close, Color.red, Color.black);
    }
    /// <summary>
    /// Draw the wave settings
    /// </summary>
    /// <param name="_index">indew of the wave in the array</param>
    void DrawWave(int _index)
    {
        Color _originalColor = GUI.backgroundColor;

        GUI.backgroundColor = Color.white;
        //Get the serialized Property
        SerializedProperty _prop = serializedObject.FindProperty($"{waves.name}").GetArrayElementAtIndex(_index);
        float _size = 50;

        if (_prop.FindPropertyRelative("isWaveFoldOut").boolValue)
        {
            _size += (_prop.FindPropertyRelative("spawnPoints").arraySize + 1) * 25;
        }
        // Get the last rect drawn
        Rect _lastRect = GUILayoutUtility.GetLastRect();

        EditorGUILayout.BeginVertical("HelpBox");
        // Set a new based on the last rect position
        Rect _r = new Rect(_lastRect.position.x, _lastRect.position.y + 4, _lastRect.width, _size);

        // Reserve the rect
        _r = GUILayoutUtility.GetRect(_r.width, _r.height, GUIStyle.none);
        GUIContent _content = new GUIContent($"Wave n°{_index}");

        // Draw the Wave Editor
        EditorGUI.PropertyField(_r, _prop, _content);
        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("▲") && _index > 0)
        {
            waves.MoveArrayElement(_index, _index - 1);
        }
        if (GUILayout.Button("▼") && _index < serializedObject.FindProperty($"{waves.name}").arraySize - 1)
        {
            waves.MoveArrayElement(_index, _index + 1);
        }
        EditorGUILayout.EndHorizontal();
        // Draw a button to destroy the wave
        GUITools.ActionButton("Delete Wave", waves.DeleteArrayElementAtIndex, _index, Color.red, Color.black);
        EditorGUILayout.EndVertical();
        GUI.backgroundColor = _originalColor;
    }
    private void OnGUI()
    {
        EditorGUILayout.Space();
        EditorGUILayout.HelpBox("CUSTOM NAV MESH BUILDER", MessageType.None, true);
        EditorGUILayout.Space();
        GUITools.ActionButton("Build Navigation Datas", GetNavPointsFromNavSurfaces, Color.white, Color.black);
        if (isBuilding)
        {
            GUITools.ActionButton("Clear Navigation Datas", () => Debug.Log("Building"), Color.grey, Color.white);
        }
        else
        {
            GUITools.ActionButton("Clear Navigation Datas", ClearNavDatas, Color.white, Color.black);
        }
        GUITools.ActionButton("Open Saving Folder", OpenDirectory, Color.white, Color.black);

        if (NavMeshSurface.activeSurfaces.Count == 0)
        {
            EditorGUILayout.HelpBox("You must add nav mesh surfaces to build the datas", MessageType.Error, true);
        }
    }
Exemplo n.º 15
0
    /// <summary>
    /// Edit wave element
    /// Edit type and number of enemies
    /// </summary>
    /// <param name="_element">Element to Edit</param>
    void ShowWaveElementSettings(TDS_WaveElement _element)
    {
        // COLOR
        GUI.color = Color.blue;
        EditorGUILayout.HelpBox("Wave Element", MessageType.None);
        GUI.color = Color.white;
        // ENEMIES AND COUNT
        TDS_Enemy _enemy = null;

        _enemy = EditorGUILayout.ObjectField(_enemy, typeof(TDS_Enemy), false) as TDS_Enemy;
        if (_enemy != null && !_element.EnemiesSpawn.Any(e => e.SpawningEnemy == _enemy))
        {
            _element.AddElement(_enemy);
        }
        for (int i = 0; i < _element.EnemiesSpawn.Count; i++)
        {
            EditorGUILayout.LabelField(_element.EnemiesSpawn[i].SpawningEnemy.PrefabName.ToString());
            _element.EnemiesSpawn[i].NumberOfEnemies = EditorGUILayout.IntSlider("Enemy count", _element.EnemiesSpawn[i].NumberOfEnemies, 0, 10);
            GUITools.ActionButton("Remove Element", _element.RemoveElement, i, Color.white, Color.black);
        }
    }
Exemplo n.º 16
0
    /* TDS_WaveElementEditor :
     *
     *	#####################
     *	###### PURPOSE ######
     *	#####################
     *
     *  Editor of the WaveElement class
     *
     *	#####################
     *	### MODIFICATIONS ###
     *	#####################
     *
     *	Date :			[12/02/2019]
     *	Author :		[THIEBAUT Alexis]
     *
     *	Changes :
     *
     *	[Initialisation de la class TDS_WaveElementEditor]
     *	    - Implémentation de la méthode OnGUI pour afficher les settings de WaveElement
     *
     *	-----------------------------------
     */

    #region Methods
    public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
    {
        //Int sliders to display and modify the min and max random Spawn
        Rect _rect = new Rect(0, 0, 0, 0);

        if (property.FindPropertyRelative("minRandomSpawn").arraySize == 0)
        {
            for (int i = 0; i < 4; i++)
            {
                property.FindPropertyRelative("minRandomSpawn").InsertArrayElementAtIndex(0);
                property.FindPropertyRelative("minRandomSpawn").GetArrayElementAtIndex(i).intValue = 0;
            }
        }
        if (property.FindPropertyRelative("maxRandomSpawn").arraySize == 0)
        {
            for (int i = 0; i < 4; i++)
            {
                property.FindPropertyRelative("maxRandomSpawn").InsertArrayElementAtIndex(0);
                property.FindPropertyRelative("maxRandomSpawn").GetArrayElementAtIndex(i).intValue = 1;
            }
        }

        for (int i = 0; i < property.FindPropertyRelative("minRandomSpawn").arraySize; i++)
        {
            _rect = new Rect(position.position.x, position.position.y + (75 * i), position.width - 25, 20);
            EditorGUI.LabelField(_rect, $"{i + 1} Players", TDS_EditorUtility.HeaderStyle);
            _rect = new Rect(position.position.x, position.position.y + 25 + (75 * i), position.width - 25, 20);
            property.FindPropertyRelative("minRandomSpawn").GetArrayElementAtIndex(i).intValue = EditorGUI.IntSlider(_rect, $"Min Random Spawn for {i + 1} player", property.FindPropertyRelative("minRandomSpawn").GetArrayElementAtIndex(i).intValue, 0, property.FindPropertyRelative("maxRandomSpawn").GetArrayElementAtIndex(i).intValue);

            _rect = new Rect(position.position.x, position.position.y + (50 + (75 * i)), position.width - 25, 20);
            property.FindPropertyRelative("maxRandomSpawn").GetArrayElementAtIndex(i).intValue = EditorGUI.IntSlider(_rect, $"Max Random Spawn for {i + 1} player", property.FindPropertyRelative("maxRandomSpawn").GetArrayElementAtIndex(i).intValue, property.FindPropertyRelative("minRandomSpawn").GetArrayElementAtIndex(i).intValue, 10);
        }


        for (int i = 0; i < 50; i++)
        {
            EditorGUILayout.Space();
        }


        GUILayout.BeginVertical("Box");
        GUILayout.Label("Normal Spawns", TDS_EditorUtility.HeaderStyle);
        // Display the settings of the normal spawning Informations
        for (int i = 0; i < property.FindPropertyRelative("spawningInformations").arraySize; i++)
        {
            EditorGUILayout.PropertyField(property.FindPropertyRelative($"spawningInformations.Array.data[{i}]"));
            //Create a button to remove the spawning informations
            GUITools.ActionButton("Delete this info", property.FindPropertyRelative($"spawningInformations.Array").DeleteArrayElementAtIndex, i, Color.white, Color.black);
        }
        GUILayout.EndVertical();

        //GUI.backgroundColor = TDS_EditorUtility.BoxDarkColor;
        GUILayout.BeginVertical("Box");
        GUILayout.Label("Random Spawns", TDS_EditorUtility.HeaderStyle);
        // Display the settings of the random spawning Informations
        for (int i = 0; i < property.FindPropertyRelative("randomSpawningInformations").arraySize; i++)
        {
            EditorGUILayout.PropertyField(property.FindPropertyRelative($"randomSpawningInformations.Array.data[{i}]"));
            //Create a button to remove the spawning informations
            GUITools.ActionButton("Delete this info", property.FindPropertyRelative($"randomSpawningInformations.Array").DeleteArrayElementAtIndex, i, Color.white, Color.black);
        }
        GUILayout.Space(5);
        GUILayout.EndVertical();
    }
Exemplo n.º 17
0
 /// <summary>
 /// Button to show the point editor window
 /// </summary>
 /// <param name="_point">point to edit</param>
 void ShowWaveSettings(TDS_WavePoint _point)
 {
     GUITools.ActionButton($"Edit {_point.Name}", OpenPointWindow, _point, Color.white, Color.black);
 }