35 lines
1014 B
Java
35 lines
1014 B
Java
package satisfactory.items.requirements;
|
|
|
|
import satisfactory.items.Item;
|
|
import satisfactory.items.Recipe;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
public class RateAccumulator extends Accumulator<Float> {
|
|
private Item item;
|
|
|
|
public RateAccumulator(Recipe recipe, Item item) {
|
|
super(new HashMap<>());
|
|
recipe.getInputs().forEach((item1, integer) -> inputs.put(item1, Float.valueOf(integer)));
|
|
this.item = item;
|
|
}
|
|
|
|
@Override
|
|
protected Float calculate(Item i, Float subAmount, Float amount, Map<Item, Float> total) {
|
|
Float base = total.getOrDefault(i, 0f);
|
|
float additional = subAmount * amount * i.getProductionRate();
|
|
return base + additional;
|
|
}
|
|
|
|
@Override
|
|
protected Float dequeue(Item item, Float amount, Map<Item, Float> totals) {
|
|
return totals.getOrDefault(item, 0f) + amount;
|
|
}
|
|
|
|
@Override
|
|
protected Map<Item, Float> getRequirements(Recipe r, Item i) {
|
|
return r.getRequirementRates(i);
|
|
}
|
|
}
|