ConsumeCoolant

This commit is contained in:
Anuken
2021-06-09 14:38:49 -04:00
parent c9ff84d03b
commit 6f609aa4ee
11 changed files with 32 additions and 9 deletions

View File

@@ -0,0 +1,16 @@
package mindustry.world.consumers;
/** A ConsumeLiquidFilter that consumes specific coolant, selected based on stats. */
public class ConsumeCoolant extends ConsumeLiquidFilter{
public float maxTemp = 0.5f, maxFlammability = 0.1f;
public ConsumeCoolant(float amount){
this.filter = liquid -> liquid.temperature <= maxTemp && liquid.flammability < maxFlammability;
this.amount = amount;
}
//mods
public ConsumeCoolant(){
this(0.1f);
}
}

View File

@@ -4,12 +4,14 @@ import mindustry.gen.*;
public abstract class ConsumeLiquidBase extends Consume{
/** amount used per frame */
public final float amount;
public float amount;
public ConsumeLiquidBase(float amount){
this.amount = amount;
}
public ConsumeLiquidBase(){}
@Override
public ConsumeType type(){
return ConsumeType.liquid;

View File

@@ -11,13 +11,17 @@ import mindustry.world.meta.*;
import static mindustry.Vars.*;
public class ConsumeLiquidFilter extends ConsumeLiquidBase{
public final Boolf<Liquid> filter;
public Boolf<Liquid> filter;
public ConsumeLiquidFilter(Boolf<Liquid> liquid, float amount){
super(amount);
this.filter = liquid;
}
public ConsumeLiquidFilter(){
this.filter = l -> false;
}
@Override
public void applyLiquidFilter(Bits arr){
content.liquids().each(filter, item -> arr.set(item.id));