satisfactory/src/main/satisfactory/items/requirements/RateAccumulator.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);
}
}