Skip to content

Commit d7c675f

Browse files
SWeinishpaass
authored andcommitted
use input fluid temperature for boilers
From ShadowTheAge#218
1 parent 33d9197 commit d7c675f

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

YAFCmodel/Model/ProductionTable.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ public override async Task<string> Solve(ProjectPage page)
252252
for (var i = 0; i < allRecipes.Count; i++)
253253
{
254254
var recipe = allRecipes[i];
255-
recipe.parameters.CalculateParameters(recipe.recipe, recipe.entity, recipe.fuel, recipe);
255+
recipe.parameters.CalculateParameters(recipe.recipe, recipe.entity, recipe.fuel, recipe.variants, recipe);
256256
var variable = solver.MakeNumVar(0f, double.PositiveInfinity, recipe.recipe.name);
257257
if (recipe.fixedBuildings > 0f)
258258
{

YAFCmodel/Model/RecipeParameters.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Collections.Generic;
23

34
namespace YAFC.Model
45
{
@@ -56,7 +57,7 @@ public void Clear()
5657
modules = default;
5758
}
5859

59-
public void CalculateParameters(Recipe recipe, EntityCrafter entity, Goods fuel, IModuleFiller moduleFiller)
60+
public void CalculateParameters(Recipe recipe, EntityCrafter entity, Goods fuel, HashSet<FactorioObject> variants, IModuleFiller moduleFiller)
6061
{
6162
warningFlags = 0;
6263
if (entity == null)
@@ -135,6 +136,14 @@ public void CalculateParameters(Recipe recipe, EntityCrafter entity, Goods fuel,
135136
if (fluid != null)
136137
{
137138
float inputTemperature = fluid.temperature;
139+
foreach (var variant in variants)
140+
{
141+
if (variant is Fluid fluidVariant && fluidVariant.originalName == fluid.originalName)
142+
{
143+
inputTemperature = fluidVariant.temperature;
144+
}
145+
}
146+
138147
var outputTemp = recipe.products[0].goods.fluid.temperature;
139148
var deltaTemp = (outputTemp - inputTemperature);
140149
var energyPerUnitOfFluid = deltaTemp * fluid.heatCapacity;

0 commit comments

Comments
 (0)