def test_add_room_no_branch(self):
        builder = LevelBuilder()
        room = Room([(1, 0), (0, 0), (0, 1)])
        room.neighbours = {}

        builder.add_room(room)

        self.assertEquals(len(builder.rooms), 1)
        added_room = builder.rooms.values()[0]
        self.assertEquals(added_room.neighbours, {})
    def test_add_room(self):
        builder = LevelBuilder()
        branch_room = Room([(1, 0), (0, 0), (0, 1)])
        branch_wall = 5
        room = Room([(1, 0), (0, 0), (0, 1)])
        room.neighbours = {}

        builder.add_room(room, branch_room, branch_wall)

        self.assertEquals(len(builder.rooms), 1)
        added_room = builder.rooms.values()[0]
        self.assertEquals(added_room.neighbours, {0: branch_room})
        self.assertEquals(branch_room.neighbours, {branch_wall: added_room})
    def test_add_room_works_on_branch_room_and_wall_zero(self):
        builder = LevelBuilder()
        branch_room = Room([(1, 0), (0, 0), (0, 1)])
        branch_room.id = 0
        branch_wall = 0

        new_room = Room([(1, 0), (0, 0), (0, 1)])
        new_room.neighbours = {}

        builder.add_room(new_room, branch_room, 0)

        self.assertEquals(len(builder.rooms), 1)
        added_room = builder.rooms.values()[0]
        self.assertEquals(added_room.neighbours, {0: branch_room})
        self.assertEquals(branch_room.neighbours, {branch_wall: added_room})
Beispiel #4
0
    def test_add_to_body(self):
        color = (100, 150, 200)
        v1, v2, v3 = (0.0, 0.0), (0.0, 1.0), (1.0, 0.0)
        verts = [v1, v2, v3]
        room = Room(verts)
        space = Space()
        body = Body(inf, inf)

        room.add_to_body(space, body)

        segs = set([
            ((seg.a[0], seg.a[1]), (seg.b[0], seg.b[1]))
            for seg in space.static_shapes
        ])
        self.assertEquals(segs, set([(v1, v2), (v2, v3), (v3, v1), (v1, v2)]),
            "room walls not added to space")

        for seg in space.static_shapes:
            self.assertEquals(seg.friction, 0.5, "bad wall friction")
            self.assertEquals(seg.elasticity, 0.5, "bad wall elasticity")
Beispiel #5
0
    def test_add_to_body_should_not_add_segments_for_neighbours(self):
        color = (100, 150, 200)
        v1, v2, v3 = (0,1), (1,2), (2,0)
        verts = [v1, v2, v3]
        room = Room(verts)
        room.neighbours = {1: object(), 2: object()}
        space = Space()
        body = Body(inf, inf)

        room.add_to_body(space, body)

        segs = set([
            ((seg.a[0], seg.a[1]), (seg.b[0], seg.b[1]))
            for seg in space.static_shapes
        ])
        self.assertEquals(segs, set([(v1, v2)]),
            "wrong room walls added to space")

        for seg in space.static_shapes:
            self.assertEquals(seg.friction, 0.5, "bad wall friction")
            self.assertEquals(seg.elasticity, 0.5, "bad wall elasticity")
Beispiel #6
0
    def test_add_to_pymunk(self):
        color = (50, 100, 200)
        v1, v2, v3 = (0, 0), (0, 100), (100, 0)
        verts = [v1, v2, v3]
        room1 = Room(verts)
        room1.id = 999
        room1.add_to_body = Listener()
        room2 = Room(verts)
        room2.id = 1000
        room2.add_to_body = Listener()
        world = World()
        world.rooms = {999: room1, 1000: room2}

        world.add_to_pymunk()

        expected = (world.space, world.static_body)
        self.assertEquals(room1.add_to_body.args, expected,
            "room1 walls not added to space")
        self.assertEquals(room2.add_to_body.args, expected,
            "room2 walls not added to space")
Beispiel #7
0
 def test_attach(self):
     room1 = Room([(0, 0), (0, 1), (1, 1), (1, 0)])
     room2 = Room([(1, 0), (1, 1), (2, 1), (2, 0)])
     room1.attach(2, room2, 0)
     self.assertEquals(room1.neighbours, {2: room2})
     self.assertEquals(room2.neighbours, {0: room1})