/// <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; } }
/// <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; }