Ejemplo n.º 1
0
    def redraw(self, screen, drawselected=True):
        if not self.visible:return

        #Draw inventory background
        screen.blit(self.image, (self.invpos[0]-\
            self.imgoffset[0]+self.invsoffset[0], \
            self.invpos[1]-self.imgoffset[1]+self.invsoffset[1]))
        xx=0 #current slot

        #Skip draw when there no inventory
        if not self.inventory:return
        for item in self.inventory.slots:
            if item!=None:
                img=self.imgloader.loadimage(item[0])
                nx=(xx%self.invsize[0])*self.ts+self.getinvpos()[0]
                ny=(xx/self.invsize[0])*self.ts+self.getinvpos()[1]
                screen.blit(img, (nx, ny))
                #Draw count
                txt=self.font.render(str(item[1]), 1, (255, 255, 0))
                screen.blit(txt, (nx, ny))
                #Draw selection
                if xx==self.selected and drawselected:
                    pygame.draw.rect(screen, (255, 255, 0), \
                        (nx-1, ny-1, self.ts-2, self.ts-2), 1)
                    drawselected=False
            #increase index
            xx+=1
        #Draw tooltip
        if self.lastslot!=None:
            slot=self.inventory.getslot(self.lastslot)
            if slot!=None:
                mx, my=pygame.mouse.get_pos()
                block=Engine.create_block(slot[0]) # create temp block
                #Draw tooltip background
                #pygame.draw.rect(screen, (64, 64, 64), \
                #   (mx, my, 128, 32), 0)
                #Draw item name
                color=(200, 200, 200)
                img=self.font.render(str(block.name), 1, color, (64, 64, 64))
                px,py=mx+(64-img.get_size()[0]/2),my
                screen.blit(img, (px, py))