Mercurial > parpg-source
comparison systems/scriptingsystem.py @ 159:1b66e1ce226b
script commands are stored in the System now instead of the the script object.
author | KarstenBock@gmx.net |
---|---|
date | Sun, 13 Nov 2011 13:37:24 +0100 |
parents | 79d6b17b80a3 |
children | 75c0b728ccf3 |
comparison
equal
deleted
inserted
replaced
158:04854cf6e1ac | 159:1b66e1ce226b |
---|---|
15 from collections import deque | 15 from collections import deque |
16 | 16 |
17 class Script(object): | 17 class Script(object): |
18 """Script object""" | 18 """Script object""" |
19 | 19 |
20 def __init__(self, condition, actions, commands): | 20 def __init__(self, condition, actions, system): |
21 """Constructor""" | 21 """Constructor""" |
22 assert(isinstance(actions, deque)) | 22 assert(isinstance(actions, deque)) |
23 self.condition = condition | 23 self.condition = condition |
24 self.actions = actions | 24 self.actions = actions |
25 self.commands = commands | 25 self.system = system |
26 self.running = False | 26 self.running = False |
27 self.finished = False | 27 self.finished = False |
28 self.time = 0 | 28 self.time = 0 |
29 self.wait = 0 | 29 self.wait = 0 |
30 self.cur_action = None | 30 self.cur_action = None |
43 self.cur_action = action[0] | 43 self.cur_action = action[0] |
44 self.wait = action[1] | 44 self.wait = action[1] |
45 if len(action) >= 3: | 45 if len(action) >= 3: |
46 vals = action[3:] if len(action) > 3 else () | 46 vals = action[3:] if len(action) > 3 else () |
47 command = action[2] | 47 command = action[2] |
48 self.commands[command](*vals, action=self.cur_action) | 48 self.system.commands[command]( |
49 *vals, | |
50 action=self.cur_action | |
51 ) | |
49 else: | 52 else: |
50 self.cur_action.execute() | 53 self.cur_action.execute() |
51 except IndexError: | 54 except IndexError: |
52 self.finished = True | 55 self.finished = True |
53 self.running = False | 56 self.running = False |
57 """ | 60 """ |
58 System responsible for managing scripts attached to entities to define | 61 System responsible for managing scripts attached to entities to define |
59 their behavior. | 62 their behavior. |
60 """ | 63 """ |
61 | 64 |
62 def __init__(self, funcs): | 65 def __init__(self, funcs, commands): |
63 """Constructor""" | 66 """Constructor""" |
64 self.funcs = funcs | 67 self.funcs = funcs |
65 self.vals = {} | 68 self.vals = {} |
66 self.scripts = [] | 69 self.scripts = [] |
70 self.commands = commands | |
67 | 71 |
68 def step(self, dt): | 72 def step(self, dt): |
69 """Execute a time step for the system. Must be defined | 73 """Execute a time step for the system. Must be defined |
70 by all system classes. | 74 by all system classes. |
71 | 75 |