Spaces:
Runtime error
Runtime error
File size: 1,646 Bytes
88de31c 0ed027c 88de31c |
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
from qt.components import ComboWithLabel, RadioWithLabel
from qt.components.consumables import ConsumablesWidget
from general.consumables import CONSUMABLES
class Consumables(dict):
@property
def attrs(self):
final_attrs = {}
for consumable in self.values():
for attr, value in consumable.items():
if attr not in final_attrs:
final_attrs[attr] = 0
final_attrs[attr] += value
return final_attrs
def consumables_script(consumables_widget: ConsumablesWidget):
consumables = Consumables()
def consumable_combo_update(label):
widget = consumables_widget[label]
def inner(index):
consumable = widget.combo_box.currentText()
if consumable:
consumables[label] = CONSUMABLES[consumable]
else:
consumables[label] = {}
return inner
def consumable_radio_update(label):
widget = consumables_widget[label]
def inner():
if widget.radio_button.isChecked():
consumables[label] = CONSUMABLES[label]
else:
consumables[label] = {}
return inner
for consumable_label, consumable_widget in consumables_widget.items():
if isinstance(consumable_widget, ComboWithLabel):
consumable_widget.combo_box.currentTextChanged.connect(consumable_combo_update(consumable_label))
elif isinstance(consumable_widget, RadioWithLabel):
consumable_widget.radio_button.clicked.connect(consumable_radio_update(consumable_label))
return consumables
|