Code: Select all
["normal"] = 1 / (time_to_produce_stock[1] / assembler_total_speed_bonus),
Code: Select all
function getResultItemsPerSecond(stock_name, new_name, compression_ratio, vanilla_recipe)
local recipe_name = new_name .. "-recipe"
local new_recipe = data.raw.recipe[stock_name]
local time_to_produce_stock = {}
if new_recipe.energy_required then
time_to_produce_stock = { new_recipe.energy_required, new_recipe.energy_required }
else
--normal and expensive aren't guaranteed to exist, but they *should* in this case.
time_to_produce_stock = { new_recipe.normal.energy_required, new_recipe.expensive.energy_required }
end
local items_per_second = {
["normal"] = 1 / (time_to_produce_stock[1] / assembler_total_speed_bonus),
["expensive"] = 1 / (time_to_produce_stock[2] / assembler_total_speed_bonus)
}
return items_per_second
end
Relevant code for assembler_total_speed_bonus:
Code: Select all
beacon_count = 12
--//modules (level 3)
local spd_module_speed_bonus = data.raw.module["speed-module-3"].effect.speed.bonus
local spd_module_pwr_penality = data.raw.module["speed-module-3"].effect.consumption.bonus
local prod_mod_speed_penalty = data.raw.module["productivity-module-3"].effect.speed.bonus
local prod_mod_prod_bonus = data.raw.module["productivity-module-3"].effect.productivity.bonus
local prod_mod_pwr_penality = data.raw.module["productivity-module-3"].effect.consumption.bonus
prod_mod_pollution_penalty = data.raw.module["productivity-module-3"].effect.pollution.bonus
total_beacon_speed_bonus = spd_module_speed_bonus * beacon_count
base_ass_entity = data.raw["assembling-machine"]["assembling-machine-3"]
assembler_base_speed = base_ass_entity.crafting_speed
assembler_base_modules = base_ass_entity.module_specification.module_slots
local assembler_modules_speed_effect = assembler_base_modules * prod_mod_speed_penalty
assembler_total_speed_bonus = assembler_base_speed * (assembler_modules_speed_effect + total_beacon_speed_bonus + 1)