Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func update_goods(good, quantity):
- """
- Скрипт для обновления товара внутри текущего объекта.
- Принимает товар (структуру, откуда берём сам товар) и его количество (минус - вычитаем, плюс - прибавляем).
- Возвращает новое количество указанного товара. Можно использовать для обновления в другой структуре.
- Если товара меньше нуля - он убирается из структуры.
- Пример. Указали, что нужно добавить 100 муки. Значит возвращенное число будет -100,
- чтобы вычесть из другой структуры. При этом в текущей структуре появится 100 единиц указанного товара.
- Если -100 муки - значит возвращаем 100, чтобы добавить в другую структуру.
- """
- var goods_inside = data.info.goods_inside.value
- var id_to_find = good.id.value
- var found_good
- var _id = 0
- for g in goods_inside:
- if g.id.value == id_to_find:
- found_good = g
- break
- _id += 1
- # Если внутри товар не нашли
- if found_good == null:
- # Если вычитали
- if quantity < 0:
- return -quantity # Возвращаем товар обратно, чтобы добавить его в изначальную структуру.
- else:
- # Добавляем товар
- var val = good.duplicate(true)
- val.quantity.value = quantity
- goods_inside.append(val)
- return -quantity # Возвращаем отрицательное число товара, чтобы убрать из изначальной структуры
- else:
- var found_quantity = found_good.quantity.value
- print_debug([found_quantity, quantity])
- var diff
- # Если вычитаем
- if quantity < 0:
- # Смотрим, сколько вычесть мы действительно можем
- if found_quantity < abs(quantity):
- diff = quantity + found_quantity
- quantity -= diff
- found_good.quantity.value += quantity
- return -quantity
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement