using System; using UnityEngine; public enum TaskType { Task //TODO: Typy úkolù } public interface ITask { public string TaskID { get; } // Unikátní ID úkolu pro server public TaskType TaskType { get; } // Typ úkolu public string TaskName { get; } // Viditelný název úkolu public (double, double) TaskLocation { get; } // Polohy na mapì public bool IsCompleted { get; } // Stav dokonèení úkolu void Initialize(Action onCompleted); // Vytvoøení tasku + naètení postupu void ExitTask(Action onExit); // Pøi opuštìní úkolu poslat hotovo / uložit postup / reset void Complete(); // Oznaèit úkol jako dokonèený, poslat na server a zavøít } /* Ukázoková implementace ITask public class Wires : ITask{ public string TaskID { get; set; } // Unikátní ID úkolu pro server public TaskType TaskType { get; set; } // Typ úkolu public string TaskName { get; set; } // Viditelný název úkolu public (double, double) TaskLocation { get; set; } // Poloha na mapì public bool IsCompleted { get; private set; } // Stav dokonèení úkolu private Action _onCompleted; public void Initialize(Action onCompleted) // Vytvoøení tasku { IsCompleted = false; _onCompleted = onCompleted; } public void ExitTask(Action onExit) //Zavøení tasku { onExit?.Invoke(this); } public void Complete() // Dokonèení tasku a zavøení { IsCompleted = true; _onCompleted?.Invoke(this); ExitTask(null); } } */