This commit is contained in:
Anuken
2024-04-06 18:20:45 -04:00
parent 08c8ab08a2
commit 33f01112ca
5 changed files with 18 additions and 4 deletions

View File

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

View File

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

View File

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

View File

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

View File

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