From: Simon Cross Date: Sat, 5 Mar 2016 11:07:43 +0000 (+0200) Subject: Merge branch 'master' of ctpug.org.za:koperkapel X-Git-Url: https://git.ctpug.org.za/?p=koperkapel.git;a=commitdiff_plain;h=0dc9a8b725a625cc444eb1b49ebf2f9cf00b0539;hp=ad8706816ed40286081300de74e67a577c0848e2 Merge branch 'master' of ctpug.org.za:koperkapel --- diff --git a/koperkapel/vehicles/base.py b/koperkapel/vehicles/base.py index fb4640d..1b2f3ed 100644 --- a/koperkapel/vehicles/base.py +++ b/koperkapel/vehicles/base.py @@ -18,8 +18,19 @@ class Vehicle: def init_seats(self): raise NotImplementedError("Vehicles should specify a list of seats") + def assign_seats(self, seating): + for roach_name, seat in zip(seating, self.seats): + seat.roach = roach_name + _vehicle_types = {} + @classmethod + def current(cls, world): + vehicle = cls.by_type(world.vehicles.current) + vehicle.assign_seats( + world.vehicles[vehicle.vehicle_type].seating) + return vehicle + @classmethod def by_type(cls, vehicle_type): return cls._vehicle_types.get(vehicle_type)() diff --git a/koperkapel/world.py b/koperkapel/world.py index 2272a7a..d682949 100644 --- a/koperkapel/world.py +++ b/koperkapel/world.py @@ -124,6 +124,12 @@ class WorldDictProxy(WorldBaseProxy): value = self._state.get(name) return _maybe_subproxy(self, name, value) + def __setitem__(self, name, value): + return self.__setattr__(name, value) + + def __getitem__(self, name): + return self.__getattr__(name) + class WorldListProxy(WorldBaseProxy): """ World list proxy that records changes and produces events. """