Fixed #9714
This commit is contained in:
@@ -993,6 +993,11 @@ public class Block extends UnlockableContent implements Senseable{
|
||||
return consume(new ConsumePowerDynamic((Floatf<Building>)usage));
|
||||
}
|
||||
|
||||
/** Creates a consumer that consumes a dynamic amount of power. */
|
||||
public <T extends Building> ConsumePower consumePowerDynamic(float displayed, Floatf<T> usage){
|
||||
return consume(new ConsumePowerDynamic(displayed, (Floatf<Building>)usage));
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a consumer which stores power.
|
||||
* @param powerCapacity The maximum capacity in power units.
|
||||
|
||||
@@ -76,7 +76,7 @@ public class PayloadLoader extends PayloadBlock{
|
||||
public void init(){
|
||||
if(loadPowerDynamic){
|
||||
basePowerUse = consPower != null ? consPower.usage : 0f;
|
||||
consumePowerDynamic((PayloadLoaderBuild loader) -> loader.shouldConsume() ? (loader.hasBattery() && !loader.exporting ? maxPowerConsumption + basePowerUse : basePowerUse) : 0f);
|
||||
consumePowerDynamic(basePowerUse, (PayloadLoaderBuild loader) -> loader.shouldConsume() ? (loader.hasBattery() && !loader.exporting ? maxPowerConsumption + basePowerUse : basePowerUse) : 0f);
|
||||
}
|
||||
|
||||
super.init();
|
||||
|
||||
@@ -87,7 +87,7 @@ public class PayloadUnloader extends PayloadLoader{
|
||||
(liquids.current() == payload.build.liquids.current() || liquids.currentAmount() <= 0.2f)){
|
||||
var liq = payload.build.liquids.current();
|
||||
float remaining = liquidCapacity - liquids.currentAmount();
|
||||
float flow = Math.min(Math.min(liquidsLoaded * delta(), remaining), payload.build.liquids.currentAmount());
|
||||
float flow = Math.min(Math.min(liquidsLoaded * edelta(), remaining), payload.build.liquids.currentAmount());
|
||||
|
||||
liquids.add(liq, flow);
|
||||
payload.build.liquids.remove(liq, flow);
|
||||
|
||||
@@ -137,7 +137,7 @@ public class UnitFactory extends UnitBlock{
|
||||
}
|
||||
|
||||
ItemStack stack = plan.requirements[i];
|
||||
req.add(new ItemDisplay(stack.item, stack.amount, false)).pad(5);
|
||||
req.add(new ItemDisplay(stack.item, stack.amount, plan.time, true)).pad(5);
|
||||
}
|
||||
}).right().grow().pad(10f);
|
||||
}else{
|
||||
|
||||
@@ -7,12 +7,19 @@ import mindustry.world.meta.*;
|
||||
/** A power consumer that uses a dynamic amount of power. */
|
||||
public class ConsumePowerDynamic extends ConsumePower{
|
||||
private final Floatf<Building> usage;
|
||||
private float displayedPowerUsage;
|
||||
|
||||
public ConsumePowerDynamic(Floatf<Building> usage){
|
||||
super(0, 0, false);
|
||||
this.usage = usage;
|
||||
}
|
||||
|
||||
public ConsumePowerDynamic(float displayed, Floatf<Building> usage){
|
||||
super(0, 0, false);
|
||||
this.displayedPowerUsage = displayed;
|
||||
this.usage = usage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float requestedPower(Building entity){
|
||||
return usage.get(entity);
|
||||
@@ -20,6 +27,8 @@ public class ConsumePowerDynamic extends ConsumePower{
|
||||
|
||||
@Override
|
||||
public void display(Stats stats){
|
||||
|
||||
if(displayedPowerUsage != 0f){
|
||||
stats.add(Stat.powerUse, displayedPowerUsage * 60f, StatUnit.powerSecond);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user