| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.ComponentModel;
- using TMPro;
- using UnityEngine;
- namespace TimelineViewer
- {
- public enum TimelineIncrements
- {
- Minutes
- }
- public class TimelineController : MonoBehaviour
- {
- public enum ClockType
- {
- Twelve,
- TwentyFour
- }
- [Header("Text & Styles")]
- [SerializeField] string timelineHeaderText;
- [SerializeField] Color timelineHeaderColor;
- [HideInInspector][SerializeField] int startTime;
- [HideInInspector][SerializeField] int endTime;
- [Header("Clock Settings")]
- [SerializeField] int increments;
- public int maxMinute;
- [HideInInspector]
- [SerializeField] GameObject timelineHeader;
- [HideInInspector]
- [SerializeField] TextMeshProUGUI timelineLabelHeader;
- [HideInInspector]
- [SerializeField] GameObject timelineSwimlanes;
- [HideInInspector]
- [SerializeField] GameObject timelineHeaderItemPrefab;
- [HideInInspector]
- [SerializeField] RectTransform swimlaneContent;
- [HideInInspector]
- [SerializeField] Transform swimLaneLabelContent;
- Transform timelineHeaderTransform;
- public int DailyIncements { get; private set; }
- public int TimeCount { get; private set; }
- public int ScenarioStartTime { get; private set; }
- public int ScenarioEndTime { get; private set; }
- public TimelineSwimlaneController SwimLaneController { get { return timelineSwimlaneController; } }
- TimelineSwimlaneController timelineSwimlaneController;
-
- // Start is called before the first frame update
- void Start()
- {
- timelineHeaderTransform = timelineHeader.transform;
- ScenarioStartTime = startTime;
- ScenarioEndTime = endTime;
- DailyIncements = increments;
- timelineLabelHeader.text = timelineHeaderText;
- SetupTimelineHeader();
- timelineSwimlaneController = timelineSwimlanes.GetComponent<TimelineSwimlaneController>();
- }
- //private void Update()
- //{
- // if (DailyIncements != increments)
- // {
- // DailyIncements = increments;
- // SetupTimelineHeader();
- // }
-
- //}
- public void AddNewSwimlane(GameMapTile t)
- {
- timelineSwimlaneController.AddSwimlane(t, swimLaneLabelContent, TimeCount, DailyIncements);
- }
- public void AddEventToTimeline(SpawnTime value, int index, Color color, int startTime)
- {
- timelineSwimlaneController.AddTimelineItem(value, index, increments, color, startTime);
- }
- public void ResetTimeline()
- {
- timelineSwimlaneController.DeleteAllSwimlanes();
- for (int i = 0; i < timelineHeaderTransform.childCount; i++)
- {
- Destroy(timelineHeaderTransform.GetChild(i));
- }
- SetupTimelineHeader();
- }
- private void SetupTimelineHeader()
- {
- for (int i = 0; i <= getIncrements(); i++)
- {
- var headerItem = PoolManager.Instantiate(timelineHeaderItemPrefab, timelineHeaderTransform, false);
- var date = headerItem.GetComponent<TimelineHeaderItem>();
-
- date.SetTextColor(timelineHeaderColor);
- date.SetDateTime(i * increments);
- TimeCount++;
- }
- }
- private int getIncrements()
- {
- int incm = (maxMinute * 60 / increments);
- return incm;
- }
-
- }
- }
|