示例#1
0
        /// <summary>
        /// Crée l'InputHandler avec les joueurs, la fenêtre de l'application et le menu en jeu à déclencher.
        /// A chque joueur est assigné un PlayerController, qui va récupérer les évènements qui passent par
        /// l'InputHandler.
        /// Si un évènement n'est pas traité après les PlayerController, un GameController le reçoit pour faire les
        /// actions qui ne concernent pas la gestion d'un personnage.
        /// </summary>
        /// <param name="players"> Les joueurs, qui sont associés à un PlayerController </param>
        /// <param name="form"> La fenêtre de l'application </param>
        /// <param name="escapeState"> Le menu en jeu, déclenché par le GameController </param>
        public InputHandler(IReadOnlyList <PlayerCharacter> players, MainForm form, WindowsState escapeState)
        {
            _controllers = new IController[players.Count + 1];

            for (var i = 0; i < players.Count; ++i)
            {
                _controllers[i] = new PlayerController(players[i], i);
            }
            _controllers[players.Count] = new GameController(form, escapeState);
        }
    private void OnGUI()
    {
        TextAsset previousone = rawText;

        if (state == WindowsState.Nothing)
        {
            rawText = (TextAsset)EditorGUILayout.ObjectField("CSV file to edit", rawText, typeof(TextAsset), false);
        }
        else if (state == WindowsState.Editing)
        {
            rawText = (TextAsset)EditorGUILayout.ObjectField("CSV file to edit", rawText, typeof(TextAsset), false);
            #region MODIFY BAR
            GUILayout.BeginHorizontal();
            if (GUILayout.Button("Add Line At (-1 to auto add at the end)"))
            {
                AddLine();
            }
            insertingIndex = EditorGUILayout.IntField(insertingIndex, GUILayout.MaxWidth(30));
            if (GUILayout.Button("Remove Line At"))
            {
                RemoveLine();
            }
            removingLineIndex = EditorGUILayout.IntField(removingLineIndex, GUILayout.MaxWidth(30));

            GUILayout.EndHorizontal();
            #endregion
            GUILayout.Space(20);

            for (int i = 0; i < currentEditingFile.lines.Count; i++)
            {
                #region ITEM
                GUILayout.BeginHorizontal();
                GUILayout.Label(i.ToString());
                for (int z = 0; z < currentEditingFile.lines[i].Length; z++)
                {
                    currentEditingFile.lines[i][z] = EditorGUILayout.TextField(currentEditingFile.lines[i][z]);
                }
                GUILayout.EndHorizontal();
                #endregion
            }


            GUILayout.Space(30);
            #region SAVING
            if (GUILayout.Button("Apply Changes"))
            {
                Apply();
            }
            #endregion
        }

        if (rawText != previousone)
        {
            Init();
            state = WindowsState.Editing;
        }
        if (rawText == null)
        {
            state = WindowsState.Nothing;
        }
    }
示例#3
0
 /// <summary>
 /// Crée le GameController associé le menu en jeu à déclencher et la fenêtre de l'application.
 /// </summary>
 /// <param name="form"> La fenêtre de l'application </param>
 /// <param name="escapeState"> Le menu en jeu </param>
 public GameController(MainForm form, WindowsState escapeState)
 {
     _form  = form;
     _state = escapeState;
 }