using GeoSus.Client; 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 (float, float) 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 (float, float) 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); } } */