Advertisement
Ulabael

create_good

Aug 31st, 2023
1,312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. func create_good(workers, good):
  2.     if good == null:
  3.         return
  4.    
  5.     var k = randf_range(0, good.coefficient.value)  # Коэффициент производства товара
  6.     var w = workers                                 # Количество работников
  7.     var o = good.output.value                       # Выход одной штуки
  8.    
  9.     var items = good.items                          # Доступные нам товары
  10.     for raw in items:
  11.         var r = raw.value                                               # Сырья на штуку
  12.         var kwr = k*w*r                                                 # Сырья всего необходимо
  13.         var ri = item_from_inventory(raw.item.id.value).quantity.value  # Сырье в инвентаре
  14.        
  15.         # Если в инвентаре меньше сырья, чем нужно - пересчитываем коэффициент
  16.         if ri < kwr:
  17.             k = ri / (w * r)
  18.    
  19.     for raw in items:
  20.         var r = raw.value
  21.         var kwr = k*w*r
  22.         var ri = item_from_inventory(raw.item.id.value)
  23.        
  24.         ri.quantity.value -= kwr                                        # Вычитаем из сырья в инвентаре потраченное на производство
  25.         ri.quantity.value = floor(ri.quantity.value)                    # Округляем значение в инвентаре вниз
  26.        
  27.         # Если не осталось в инвентаре - удаляем оттуда
  28.         if ri.quantity.value <= 0:
  29.             var ri_id = item_from_inventory(ri.id.value).id.value
  30.             data.info.goods_inside.value.remove_at(ri_id)
  31.    
  32.     var product = item_from_inventory(good.item.id.value)
  33.    
  34.     if product == null:
  35.         var to_append = good.item.duplicate(true)
  36.         to_append.quantity.value = ceil(k*w*o)      # Выходная продукция = округлвверх(коэффициент * работники * выход)
  37.         data.info.goods_inside.value.append(to_append)
  38.     else:
  39.         product.quantity.value += ceil(k*w*o)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement