Mercurial > parpg-core
annotate src/parpg/components/lockable.py @ 120:1703dbb4fefb
Added Behaviour component.
Fixed updateObjectDB of GameModel storing values about components the Entity doesn't have.
author | KarstenBock@gmx.net |
---|---|
date | Tue, 27 Sep 2011 15:23:43 +0200 |
parents | 3564a46544bc |
children |
rev | line source |
---|---|
34
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
1 # This program is free software: you can redistribute it and/or modify |
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
2 # it under the terms of the GNU General Public License as published by |
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
3 # the Free Software Foundation, either version 3 of the License, or |
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
4 # (at your option) any later version. |
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
5 # |
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
6 # This program is distributed in the hope that it will be useful, |
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
7 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
8 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
9 # GNU General Public License for more details. |
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
10 # |
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
11 # You should have received a copy of the GNU General Public License |
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
12 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
13 |
119
3564a46544bc
Added Base component, which has a saveable_fields property. It is supposed to be derived from, thus it is not in the components list.
KarstenBock@gmx.net
parents:
92
diff
changeset
|
14 from base import Base |
34
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
15 |
119
3564a46544bc
Added Base component, which has a saveable_fields property. It is supposed to be derived from, thus it is not in the components list.
KarstenBock@gmx.net
parents:
92
diff
changeset
|
16 class Lockable(Base): |
34
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
17 """Component that stores the data of a lock""" |
49 | 18 |
34
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
19 def __init__(self): |
5ac50245e42c
Refactored components and began defining basic Entities and Systems.
M. George Hansen <technopolitica@gmail.com>
parents:
diff
changeset
|
20 """Constructor""" |
119
3564a46544bc
Added Base component, which has a saveable_fields property. It is supposed to be derived from, thus it is not in the components list.
KarstenBock@gmx.net
parents:
92
diff
changeset
|
21 Base.__init__(self, closed=bool, locked=bool) |
49 | 22 |
23 class LockedError(Exception): | |
24 | |
25 def __str__(self): | |
26 return "Is locked" | |
27 | |
28 class OpenError(Exception): | |
29 | |
30 def __str__(self): | |
31 return "Is open" | |
32 | |
33 def lock(lock): | |
34 if not lock.closed: | |
35 raise OpenError | |
36 lock.locked = True | |
37 | |
38 def unlock(lock): | |
39 lock.locked = False | |
40 | |
41 def open(lock): | |
42 if lock.locked: | |
43 raise LockedError | |
44 lock.closed = False | |
45 | |
46 def close(lock): | |
47 lock.closed = True |