self._lights.append(light)
light.add(self._space)
+ def remove_light(self, light):
+ self._lights.remove(light)
+ light.remove(self._space)
+
def battery_dead(self):
self._battery_dead = True
for light in self._lights:
def __init__(
self, colours, position, intensity=1.0, radius_limits=None,
- direction=None, spread=None, on=True, start_colour=None):
+ direction=None, spread=None, on=True, start_colour=None,
+ bounding_radius=None):
self.colour_cycle = colours
self.colour_pos = 0
self.colour = colours[0]
self.body.light = self
self.ray_manager = self.RAY_MANAGER(
self.body, position, ray_filter=LIGHT_FILTER,
- radius_limits=radius_limits, direction=direction, spread=spread)
+ radius_limits=radius_limits, direction=direction, spread=spread,
+ bounding_radius=bounding_radius)
self.fitting = pymunk.Circle(
self.body, self.FITTING_RADIUS, self.ray_manager.position)
self.fitting.filter = FITTINGS_FILTER
self.ray_manager.set_space(space)
self.ray_manager.update_shapes()
+ def remove(self, space):
+ if self.body.space is not None:
+ space.remove(self.body, *self.body.shapes)
+
def _cached_surface(self, name, surface):
surf = self._surface_cache.get(name)
if surf is None:
class PulsatingLamp(BaseLight):
- FITTING_IMG = "lamp.png"
+ FITTING_IMG = "pulsatinglamp.png"
DEFAULT_PULSE_RANGE = (20, 100)
DEFAULT_PULSE_VELOCITY = 2
DEFAULT_INTENSITY_RANGE = (0.0, 0.9)
"intensity_range", self.DEFAULT_INTENSITY_RANGE)
self.intensity_velocity = kw.pop(
"intensity_velocity", self.DEFAULT_INTENSITY_VELOCITY)
- super(PulsatingLamp, self).__init__(**kw)
+ super(PulsatingLamp, self).__init__(
+ bounding_radius=self.pulse_range[1], **kw)
def serialize(self):
result = super(PulsatingLamp, self).serialize()