Formulator / qt /scripts /recipes.py
ango
04.10 commit
2452398
raw
history blame
1.1 kB
from qt.components.recipes import RecipesWidget
from qt.constant import MAX_RECIPE_SKILLS, MAX_RECIPES
class Recipes:
def __init__(self):
self.recipes = [[] for _ in range(MAX_RECIPE_SKILLS)]
def __getitem__(self, item):
return self.recipes[item]
def __setitem__(self, key, value):
self.recipes[key] = value
@property
def gains(self):
return [recipe for recipes in self.recipes for recipe in recipes]
def recipes_script(recipes_widget: RecipesWidget):
recipes = Recipes()
def recipe_update(i):
widget = recipes_widget[i]
def inner():
skill = widget.label.text()
if selected_items := widget.list.selectedItems():
while len(selected_items) > MAX_RECIPES:
selected_items.pop().setSelected(False)
recipes[i] = [(skill, item.text()) for item in selected_items]
return inner
for n, recipe_widget in enumerate(recipes_widget.values()):
recipe_widget.list.itemSelectionChanged.connect(recipe_update(n))
return recipes