the refactoring continues

This commit is contained in:
Anuken
2022-02-22 13:33:55 -05:00
parent 370191407d
commit d4aff92fda
84 changed files with 337 additions and 268 deletions

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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;
}
}

View File

@@ -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);
}
}