def __init__(self): super(Level2, self).__init__() self.recipeTitle = "Buttered Toast" self.solutions = self.create_solution_dicts() self.next = Level3.Level3 bread_slice_str = 'Bread Slice' toast_str = 'Toast' butter_str = 'Butter' toast = Block.FBlock( toast_str, (settings.WINDOWWIDTH / 24, settings.WINDOWHEIGHT / 16), True, 'images/toast.png') butter = Block.FBlock( butter_str, (settings.WINDOWWIDTH / 24, 2 * settings.WINDOWHEIGHT / 16), True, 'images/butter.png') breadSlice = Block.IBlock( bread_slice_str, (settings.WINDOWWIDTH / 24, 9 * settings.WINDOWHEIGHT / 16), True, 'images/breadslice.png') self.functions, self.ingredients = [toast, butter], [breadSlice]
def __init__(self): super(Level3, self).__init__() self.recipeTitle = "Avocado Toast" self.solutions = self.create_solution_dicts() self.next = Level4.Level4 bread_slice_str, avocado_str, olive_oil_str = 'Bread Slice', 'Avocado', 'Olive Oil' toast_str, slice_str, spread_str, salt_str, pepper_str = 'Toast', 'Slice', 'Spread', 'Salt', 'Pepper' toast = Block.FBlock( toast_str, (settings.WINDOWWIDTH / 24, settings.WINDOWHEIGHT / 16), True, 'images/toast.png') slice = Block.FBlock( slice_str, (settings.WINDOWWIDTH / 24, 2 * settings.WINDOWHEIGHT / 16), True, 'images/slice.png') spread = Block.FBlock( spread_str, (settings.WINDOWWIDTH / 24, 3 * settings.WINDOWHEIGHT / 16), True, 'images/spread.png') salt = Block.FBlock( salt_str, (settings.WINDOWWIDTH / 24, 4 * settings.WINDOWHEIGHT / 16), True, 'images/salt.png') pepper = Block.FBlock( pepper_str, (settings.WINDOWWIDTH / 24, 5 * settings.WINDOWHEIGHT / 16), True, 'images/pepper.png') breadSlice = Block.IBlock( bread_slice_str, (settings.WINDOWWIDTH / 24, 9 * settings.WINDOWHEIGHT / 16), True, 'images/breadslice.png') avocado = Block.IBlock( avocado_str, (settings.WINDOWWIDTH / 24, 10 * settings.WINDOWHEIGHT / 16), True, 'images/avocado.png') oliveoil = Block.IBlock( olive_oil_str, (settings.WINDOWWIDTH / 24, 11 * settings.WINDOWHEIGHT / 16), True, 'images/oliveoil.png') self.functions, self.ingredients = [ toast, slice, spread, salt, pepper ], [breadSlice, avocado, oliveoil]
def handleMouseDown(self, mousePoint, block): if block.collide(mousePoint): if block.bank: # create new instance of function with bank=false if block.type == "function": new_block = Block.FBlock(block.text, block.blockRect.center, False, block.path) self.functions.append(new_block) elif block.type == "ingredient": new_block = Block.IBlock(block.text, block.blockRect.center, False, block.path) self.ingredients.append(new_block) new_block.setPos(mousePoint) new_block.drag = True else: # Need to deal with non-snapped and snapped fcn blocks if block.snapped: line_number = block.getLine(block.blockRect.centery)[1] # Loop through board list finding curr block clicked for i in range( len(settings.BOARD[line_number]) - 1, -1, -1): curr = settings.BOARD[line_number][i] if curr == block: curr.setPos(mousePoint) curr.drag = True index = i + 1 while index <= len( settings.BOARD[line_number]) - 1: settings.BOARD[line_number][index].trailBlock( settings.BOARD[line_number][index - 1]) index += 1 break for j in range(i, len(settings.BOARD[line_number]) ): # Loop from found block index until end settings.BOARD[line_number][i].snapped = False self.draglist.append( settings.BOARD[line_number].pop(i)) else: block.setPos(mousePoint) block.drag = True self.draglist.append(block) elif self.cook.button_pressed(mousePoint): return self.check_win() return False