/
TaskQueue.py
49 lines (33 loc) · 990 Bytes
/
TaskQueue.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
from definitions import *
from collections import deque
class Task():
def __init__(self, data, task_type):
self.task_type = task_type
self.data = data
def is_walk(self):
return self.task_type == TASK_WALK
def is_attack(self):
return self.task_type == TASK_ATTACK
def is_action(self):
return self.task_type == TASK_ACTION
def is_speak(self):
return self.task_type == TASK_SPEAK
def is_halt(self):
return self.task_type == TASK_HALT
def is_goto(self):
return self.task_type == TASK_GOTO
class TaskQueue():
def __init__(self):
self.tasks = deque()
def get_task(self):
item = self.tasks.popleft()
self.tasks.appendleft(item)
return item
def remove_task(self):
return self.tasks.popleft()
def add_task(self, data, task_type = TASK_HALT):
return self.tasks.append(Task(data, task_type))
def has_tasks(self):
return len(self.tasks) != 0
def clear_tasks(self):
self.tasks = deque()