Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/MAFH2/TermBox.py
blob: 7eb9471daab0775f4cbe19252cb5db538bfd4648 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import pygame

class TermBox:
    def __init__(self, ge, x,y,width,height,lines):
        self.ge = ge
        self.max_lines = lines

        self.x = x
        self.y = y
        self.width = width
        self.height = height
        self.font = pygame.font.Font(None, 32)

        self.__lines = []
        self.__inEngine = False
        self.add_to_engine()

    def add_to_engine(self):
        if not self.__inEngine:
            self.__inEngine = True
            self.ge.add_draw_callback( self.draw )

    def remove_from_engine(self):
        if self.__inEngine:
            self.__inEngine = False
            self.ge.remove_draw_callback( self.draw )

    def add_line(self, line):
        self.__lines.append( line )
        if len( self.__lines ) > self.max_lines:
            self.__lines.pop(0)

    def draw(self, screen):
        pygame.draw.rect(screen, [0, 0, 0], (self.x, self.y, self.width, self.height))
        i=0
        for line in self.__lines:
            ren = self.font.render(line, 1, [255, 255, 255])
            screen.blit(ren, (self.x, self.y + i*self.font.get_height()))
            i+=1