the refactoring continues
This commit is contained in:
@@ -13,8 +13,7 @@ public abstract class Consume{
|
||||
public boolean optional;
|
||||
/** If true, this consumer will be displayed as a boost input. */
|
||||
public boolean booster;
|
||||
//TODO bad. I don't like it.
|
||||
@Deprecated
|
||||
/** If false, this consumer will still be checked, but it will need to updated manually. */
|
||||
public boolean update = true;
|
||||
|
||||
/**
|
||||
@@ -34,7 +33,6 @@ public abstract class Consume{
|
||||
return optional(true, true);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public Consume update(boolean update){
|
||||
this.update = update;
|
||||
return this;
|
||||
@@ -52,11 +50,16 @@ public abstract class Consume{
|
||||
|
||||
public void update(Building build){}
|
||||
|
||||
/** @return efficiency multiplier based on input; overridden in subclasses. Returns 0 if not valid in subclasses. Should return fraction if needs are partially met. */
|
||||
/** @return [0, 1] efficiency multiplier based on input. Returns 0 if not valid in subclasses. Should return fraction if needs are partially met. */
|
||||
public float efficiency(Building build){
|
||||
return 1f;
|
||||
}
|
||||
|
||||
/** @return multiplier for efficiency - this can be above 1. Will not influence a building's base efficiency value. */
|
||||
public float efficiencyMultiplier(Building build){
|
||||
return 1f;
|
||||
}
|
||||
|
||||
public void display(Stats stats){}
|
||||
|
||||
//TODO this should use efficiency instead - remove or deprecate
|
||||
|
||||
@@ -14,7 +14,8 @@ public class ConsumeItemCharged extends ConsumeItemFilter{
|
||||
}
|
||||
|
||||
@Override
|
||||
public float efficiency(Building build){
|
||||
public float efficiencyMultiplier(Building build){
|
||||
if(build.consumeTriggerValid()) return 1f;
|
||||
var item = getConsumed(build);
|
||||
return item == null ? 0f : item.charge;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,9 @@ public class ConsumeItemFlammable extends ConsumeItemFilter{
|
||||
}
|
||||
|
||||
@Override
|
||||
public float efficiency(Building build){
|
||||
public float efficiencyMultiplier(Building build){
|
||||
//TODO ugh
|
||||
if(build.consumeTriggerValid()) return 1f;
|
||||
var item = getConsumed(build);
|
||||
return item == null ? 0f : item.flammability;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,8 @@ public class ConsumeItemRadioactive extends ConsumeItemFilter{
|
||||
}
|
||||
|
||||
@Override
|
||||
public float efficiency(Building build){
|
||||
public float efficiencyMultiplier(Building build){
|
||||
if(build.consumeTriggerValid()) return 1f;
|
||||
var item = getConsumed(build);
|
||||
return item == null ? 0f : item.radioactivity;
|
||||
}
|
||||
|
||||
@@ -42,8 +42,7 @@ public class ConsumeLiquidFilter extends ConsumeLiquidBase{
|
||||
|
||||
@Override
|
||||
public void update(Building build){
|
||||
Liquid liq = getConsumed(build);
|
||||
build.liquids.remove(liq, amount * build.edelta());
|
||||
build.liquids.remove(getConsumed(build), amount * build.edelta());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -13,8 +13,8 @@ public class ConsumeLiquidFlammable extends ConsumeLiquidFilter{
|
||||
}
|
||||
|
||||
@Override
|
||||
public float efficiency(Building build){
|
||||
var item = getConsumed(build);
|
||||
return item == null ? 0f : item.flammability * super.efficiency(build);
|
||||
public float efficiencyMultiplier(Building build){
|
||||
var liq = getConsumed(build);
|
||||
return liq == null ? 0f : liq.flammability;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ public class ConsumeLiquids extends Consume{
|
||||
int i = 0;
|
||||
for(var stack : liquids){
|
||||
c.add(new ReqImage(stack.liquid.uiIcon,
|
||||
() -> build.liquids.get(stack.liquid) >= stack.amount * build.delta())).size(Vars.iconMed).padRight(8);
|
||||
() -> build.liquids.get(stack.liquid) > 0)).size(Vars.iconMed).padRight(8);
|
||||
if(++i % 4 == 0) c.row();
|
||||
}
|
||||
}).left();
|
||||
@@ -44,13 +44,12 @@ public class ConsumeLiquids extends Consume{
|
||||
@Override
|
||||
public void update(Building build){
|
||||
for(var stack : liquids){
|
||||
build.liquids.remove(stack.liquid, Math.min(use(stack.amount, build), build.liquids.get(stack.liquid)));
|
||||
build.liquids.remove(stack.liquid, stack.amount * build.edelta());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public float efficiency(Building build){
|
||||
//TODO delta or edelta
|
||||
float min = 1f, delta = build.edelta();
|
||||
for(var stack : liquids){
|
||||
min = Math.min(build.liquids.get(stack.liquid) / (stack.amount * delta), min);
|
||||
@@ -63,7 +62,4 @@ public class ConsumeLiquids extends Consume{
|
||||
stats.add(booster ? Stat.booster : Stat.input, StatValues.liquids(1f, true, liquids));
|
||||
}
|
||||
|
||||
protected float use(float amount, Building build){
|
||||
return Math.min(amount * build.edelta(), build.block.liquidCapacity);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user