Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func create_good(workers, good):
- if good == null:
- return
- var k = randf_range(0, good.coefficient.value) # Коэффициент производства товара
- var w = workers # Количество работников
- var o = good.output.value # Выход одной штуки
- var items = good.items # Доступные нам товары
- for raw in items:
- var r = raw.value # Сырья на штуку
- var kwr = k*w*r # Сырья всего необходимо
- var ri = item_from_inventory(raw.item.id.value).quantity.value # Сырье в инвентаре
- # Если в инвентаре меньше сырья, чем нужно - пересчитываем коэффициент
- if ri < kwr:
- k = ri / (w * r)
- for raw in items:
- var r = raw.value
- var kwr = k*w*r
- var ri = item_from_inventory(raw.item.id.value)
- ri.quantity.value -= kwr # Вычитаем из сырья в инвентаре потраченное на производство
- ri.quantity.value = floor(ri.quantity.value) # Округляем значение в инвентаре вниз
- # Если не осталось в инвентаре - удаляем оттуда
- if ri.quantity.value <= 0:
- var ri_id = item_from_inventory(ri.id.value).id.value
- data.info.goods_inside.value.remove_at(ri_id)
- var product = item_from_inventory(good.item.id.value)
- if product == null:
- var to_append = good.item.duplicate(true)
- to_append.quantity.value = ceil(k*w*o) # Выходная продукция = округлвверх(коэффициент * работники * выход)
- data.info.goods_inside.value.append(to_append)
- else:
- product.quantity.value += ceil(k*w*o)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement