def __init__(self, mode, garden_cls, w, h): self.mode = mode self.w = w self.h = h self.r = (w**2 + h**2)**0.5 / 2 self.victorious = False self.compost = 1000000 self.ticks = 0 self.garden = garden_cls(self) self.plants = [] self.plant_index = PlantCoverageIndex() self.plant_tally = {} self.rebuild_plant_index() self.creatures = [] self.creature_queues = dict([ (creature_type, 0) for creature_type in self.garden.good_creatures ]) self.creature_index = SpatialIndex() self.tagged_entity_index = defaultdict(list) self.garden.initial_setup() self.compost = self.garden.initial_compost self.count_creatures()
def __init__(self, in_stream, eye_position): for line in in_stream: if not line.isspace(): s, g = SEARCH.search(line).groups() self.sky_emission = Vector3f_str(s).clamped(ZERO, MAX) self.ground_reflection = Vector3f_str(g).clamped(ZERO, ONE) self.triangles = [] try: for i in range(MAX_TRIANGLES): self.triangles.append(Triangle(in_stream)) except StopIteration: pass self.emitters = [ triangle for triangle in self.triangles if not triangle.emitivity.is_zero() and triangle.area > 0.0 ] self.index = SpatialIndex(eye_position, None, self.triangles) break
def __init__(self, in_stream, eye_position): for l in in_stream: if type(l) == type(u""): line = l.encode('ascii', 'ignore') else: line = l if not line.isspace(): s, g = SEARCH(line).groups() self.sky_emission = Vector3f(s).clamped(ZERO, MAX) self.ground_reflection = Vector3f(g).clamped(ZERO, ONE) self.triangles = [] try: for i in range(MAX_TRIANGLES): self.triangles.append(Triangle(in_stream)) except StopIteration: pass self.emitters = [ triangle for triangle in self.triangles if not triangle.emitivity.is_zero() and triangle.area > 0.0 ] self.index = SpatialIndex(eye_position, self.triangles) self.get_intersection = self.index.get_intersection break