2021-12-07 05:48:34 +01:00
|
|
|
using System.Collections;
|
2021-12-06 21:19:31 +01:00
|
|
|
using System.Collections.Generic;
|
2021-12-05 20:23:50 +01:00
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
public class InputHistory : MonoBehaviour
|
|
|
|
|
{
|
2023-07-01 23:48:47 +03:00
|
|
|
[SerializeField] Transform _inputHistoryContainer = default;
|
|
|
|
|
private InputHistoryImage _inputHistoryImage;
|
2022-10-21 21:20:37 +03:00
|
|
|
public PlayerController PlayerController { get; set; }
|
2023-10-26 22:42:28 +03:00
|
|
|
private List<int> previousTriggers = new();
|
2023-07-02 23:17:37 +03:00
|
|
|
private int previousSequence = -1;
|
2023-10-26 22:42:28 +03:00
|
|
|
public List<InputItemNetwork> Inputs { get; set; } = new();
|
|
|
|
|
public InputItemNetwork[] Sequences { get; set; }
|
|
|
|
|
public void UpdateDisplay(InputList inputList, InputBufferNetwork inputBuffer)
|
2022-10-21 21:20:37 +03:00
|
|
|
{
|
2023-10-26 22:42:28 +03:00
|
|
|
Inputs.Clear();
|
|
|
|
|
Inputs.AddRange(inputBuffer.triggers);
|
|
|
|
|
Inputs.AddRange(inputBuffer.sequences);
|
2023-10-28 18:22:00 +03:00
|
|
|
List<int> triggers = new();
|
2023-07-01 23:48:47 +03:00
|
|
|
for (int i = 0; i < inputList.inputTriggers.Length; i++)
|
2023-10-28 18:22:00 +03:00
|
|
|
if (inputList.inputTriggers[i].held && !inputList.inputTriggers[i].sequence)
|
2023-07-02 23:17:37 +03:00
|
|
|
if (!triggers.Contains(i))
|
|
|
|
|
triggers.Add(i);
|
2023-07-01 23:48:47 +03:00
|
|
|
|
2023-10-28 18:22:00 +03:00
|
|
|
int sequence = 0;
|
|
|
|
|
for (int i = 0; i < inputList.inputTriggers.Length; i++)
|
|
|
|
|
if (inputList.inputTriggers[i].held && inputList.inputTriggers[i].sequence)
|
|
|
|
|
sequence = (int)inputList.inputTriggers[i].inputEnum;
|
|
|
|
|
|
2023-07-02 23:17:37 +03:00
|
|
|
if (triggers.Count != previousTriggers.Count || sequence != previousSequence)
|
2022-10-21 21:20:37 +03:00
|
|
|
{
|
2023-07-01 23:48:47 +03:00
|
|
|
_inputHistoryContainer.GetChild(_inputHistoryContainer.childCount - 1).transform.SetAsFirstSibling();
|
|
|
|
|
_inputHistoryImage = _inputHistoryContainer.GetChild(0).GetComponent<InputHistoryImage>();
|
2023-07-02 23:17:37 +03:00
|
|
|
_inputHistoryImage.UpdateDisplay(sequence, triggers.ToArray());
|
2022-10-21 21:20:37 +03:00
|
|
|
}
|
2023-07-01 23:48:47 +03:00
|
|
|
if (_inputHistoryImage != null)
|
|
|
|
|
_inputHistoryImage.UpdateFramesDisplay();
|
2023-07-02 23:17:37 +03:00
|
|
|
previousSequence = sequence;
|
|
|
|
|
previousTriggers = triggers;
|
2022-10-21 21:20:37 +03:00
|
|
|
}
|
2021-12-05 20:23:50 +01:00
|
|
|
}
|