Initial Unity project commit
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
using Core.TaskSystem;
|
||||
using UnityEngine;
|
||||
|
||||
namespace LLM.Commands
|
||||
{
|
||||
public class TaskCommandReceiver : LLMCommandReceiverBase
|
||||
{
|
||||
[SerializeField] private TaskService taskService;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (taskService == null) taskService = TaskService.Instance;
|
||||
}
|
||||
|
||||
public override bool TryExecute(LLMCommand command)
|
||||
{
|
||||
if (command == null) return false;
|
||||
if (!string.Equals(command.type, "Task", System.StringComparison.OrdinalIgnoreCase)) return false;
|
||||
|
||||
TaskService service = taskService != null ? taskService : TaskService.Instance;
|
||||
if (service == null) return false;
|
||||
|
||||
string taskId = string.IsNullOrWhiteSpace(command.payload) ? command.targetId : command.payload;
|
||||
if (string.IsNullOrWhiteSpace(taskId)) return false;
|
||||
|
||||
if (string.Equals(command.action, "Remove", System.StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return service.RemoveTask(taskId);
|
||||
}
|
||||
|
||||
if (string.Equals(command.action, "Todo", System.StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return service.SetTaskStatus(taskId, TaskStatus.Todo);
|
||||
}
|
||||
|
||||
if (string.Equals(command.action, "Expired", System.StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return service.SetTaskStatus(taskId, TaskStatus.Expired);
|
||||
}
|
||||
|
||||
return service.SetTaskStatus(taskId, TaskStatus.Completed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user