def reload_buttons(self): self.buttons = [] self.buttons.append([]) for v in ['G','B','Y','R','O','P']: b = ToolbarButton(self,v,action='setsnake') self.buttons[0].append(b) self.buttons.append([]) for v in ['g','b', 'y', 'r', '0','1']: b = ToolbarButton(self,v,action='settile') self.buttons[1].append(b) ## NEW MAP button self.buttons.append([]) v = 12; b = ToolbarButton(self,v,action='mapsize',label=str(v)) self.buttons[2].append(b) """ # we don't need so many NEW MAP buttons # for v in xrange(3,11): b = ToolbarButton(self,v,action='mapsize',label=str(v)) self.buttons[2].append(b) self.buttons.append([]) for v in xrange(11,19): # second row of map buttons b = ToolbarButton(self,v,action='mapsize',label=str(v)) self.buttons[3].append(b) """ # add buttons for loading map with screenshots self.buttons.append([]) # maps = glob.glob(os.path.join(os.getcwd(),'data','maps')+"/*.png") # maps += glob.glob(os.path.join(os.getcwd(),'data','maps')+"/*.json") # sort_nicely(maps) # sort (natural order) by first integer - state graph size maps = self.ingameState.app.resman.get_levels() row = 3 for fn in maps: fn = os.path.basename(fn) state = State(None,None) if fn.endswith("png"): state.load_from_file(fn) else: state.load_from_json_file(os.path.join(os.getcwd(),'data','maps',fn)) thumb = state.get_thumbnail(a=60,resman=self.ingameState.app.resman) #t_w, t_h = thumb.get_size() #thumb = pygame.transform.scale(thumb,(t_w/2,t_h/2)) b = ToolbarButton(self,fn,action='mapload',surface=thumb) if len(self.buttons[row]) > self.surface.get_width() / WIDTH_OF_BUTTON: self.buttons.append([]) row = row + 1 self.buttons[row].append(b) self.current_button = None self.hover_button = None
def _refresh_levels(self): maps = self.app.levels i = 0 spacing = 20 x_o = 50 y_o = 50 for fn in maps: fn = os.path.basename(fn) state = State() state.load_from_json_file(os.path.join(os.getcwd(), 'data', 'maps', fn)) thumb = state.get_thumbnail(resman=self.app.resman) per = BUTTONS_PER_ROW col = i % per row = floor(i / per) x = x_o + col * (LevelButton.w + spacing) y = y_o + row * (LevelButton.w + spacing) b = LevelButton(fn, thumb, x, y, levelnr=i + 1) self.levelbuttons.append(b) i = i + 1