Add consumers for other liquid fields
Temperature, heat capacity, viscosity, and explosiveness
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
package mindustry.world.consumers;
|
package mindustry.world.consumers;
|
||||||
|
|
||||||
import mindustry.gen.*;
|
|
||||||
import mindustry.type.*;
|
import mindustry.type.*;
|
||||||
import mindustry.world.meta.*;
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package mindustry.world.consumers;
|
package mindustry.world.consumers;
|
||||||
|
|
||||||
import mindustry.gen.*;
|
|
||||||
import mindustry.type.*;
|
import mindustry.type.*;
|
||||||
import mindustry.world.meta.*;
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package mindustry.world.consumers;
|
package mindustry.world.consumers;
|
||||||
|
|
||||||
import mindustry.gen.*;
|
|
||||||
import mindustry.type.*;
|
import mindustry.type.*;
|
||||||
import mindustry.world.meta.*;
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package mindustry.world.consumers;
|
package mindustry.world.consumers;
|
||||||
|
|
||||||
import mindustry.gen.*;
|
|
||||||
import mindustry.type.*;
|
import mindustry.type.*;
|
||||||
import mindustry.world.meta.*;
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package mindustry.world.consumers;
|
||||||
|
|
||||||
|
import mindustry.type.*;
|
||||||
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
|
public class ConsumeLiquidExplosive extends ConsumeLiquidFilter{
|
||||||
|
public float minExplosiveness;
|
||||||
|
|
||||||
|
public ConsumeLiquidExplosive(float minExplosiveness, float amount){
|
||||||
|
this.amount = amount;
|
||||||
|
this.minExplosiveness = minExplosiveness;
|
||||||
|
this.filter = liquid -> liquid.heatCapacity >= this.minExplosiveness;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConsumeLiquidExplosive(float amount){
|
||||||
|
this(0.2f, amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConsumeLiquidExplosive(){
|
||||||
|
this(0.2f);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void display(Stats stats){
|
||||||
|
stats.add(booster ? Stat.booster : Stat.input, StatValues.liquidEffMultiplier(l -> l.explosiveness, amount * 60f, filter));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float liquidEfficiencyMultiplier(Liquid liquid){
|
||||||
|
return liquid.explosiveness;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -54,6 +54,12 @@ public class ConsumeLiquidFilter extends ConsumeLiquidBase{
|
|||||||
return liq != null ? Math.min(build.liquids.get(liq) / (amount * ed * multiplier.get(build)), 1f) : 0f;
|
return liq != null ? Math.min(build.liquids.get(liq) / (amount * ed * multiplier.get(build)), 1f) : 0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float efficiencyMultiplier(Building build){
|
||||||
|
var liq = getConsumed(build);
|
||||||
|
return liq == null ? 0 : liquidEfficiencyMultiplier(liq);
|
||||||
|
}
|
||||||
|
|
||||||
public @Nullable Liquid getConsumed(Building build){
|
public @Nullable Liquid getConsumed(Building build){
|
||||||
if(filter.get(build.liquids.current()) && build.liquids.currentAmount() > 0){
|
if(filter.get(build.liquids.current()) && build.liquids.currentAmount() > 0){
|
||||||
return build.liquids.current();
|
return build.liquids.current();
|
||||||
@@ -74,4 +80,8 @@ public class ConsumeLiquidFilter extends ConsumeLiquidBase{
|
|||||||
public void display(Stats stats){
|
public void display(Stats stats){
|
||||||
stats.add(booster ? Stat.booster : Stat.input, StatValues.liquids(filter, amount * 60f, true));
|
stats.add(booster ? Stat.booster : Stat.input, StatValues.liquids(filter, amount * 60f, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public float liquidEfficiencyMultiplier(Liquid liquid){
|
||||||
|
return 1f;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package mindustry.world.consumers;
|
package mindustry.world.consumers;
|
||||||
|
|
||||||
import mindustry.gen.*;
|
import mindustry.type.*;
|
||||||
import mindustry.world.meta.*;
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
public class ConsumeLiquidFlammable extends ConsumeLiquidFilter{
|
public class ConsumeLiquidFlammable extends ConsumeLiquidFilter{
|
||||||
@@ -20,14 +20,13 @@ public class ConsumeLiquidFlammable extends ConsumeLiquidFilter{
|
|||||||
this(0.2f);
|
this(0.2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public float efficiencyMultiplier(Building build){
|
|
||||||
var liq = getConsumed(build);
|
|
||||||
return liq == null ? 0f : liq.flammability;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void display(Stats stats){
|
public void display(Stats stats){
|
||||||
stats.add(booster ? Stat.booster : Stat.input, StatValues.liquidEffMultiplier(l -> l.flammability, amount * 60f, filter));
|
stats.add(booster ? Stat.booster : Stat.input, StatValues.liquidEffMultiplier(l -> l.flammability, amount * 60f, filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float liquidEfficiencyMultiplier(Liquid liquid){
|
||||||
|
return liquid.flammability;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package mindustry.world.consumers;
|
||||||
|
|
||||||
|
import mindustry.type.*;
|
||||||
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
|
public class ConsumeLiquidHeatCapacity extends ConsumeLiquidFilter{
|
||||||
|
public float minHeatCapacity;
|
||||||
|
|
||||||
|
public ConsumeLiquidHeatCapacity(float minHeatCapacity, float amount){
|
||||||
|
this.amount = amount;
|
||||||
|
this.minHeatCapacity = minHeatCapacity;
|
||||||
|
this.filter = liquid -> liquid.heatCapacity >= this.minHeatCapacity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConsumeLiquidHeatCapacity(float amount){
|
||||||
|
this(0.2f, amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConsumeLiquidHeatCapacity(){
|
||||||
|
this(0.2f);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void display(Stats stats){
|
||||||
|
stats.add(booster ? Stat.booster : Stat.input, StatValues.liquidEffMultiplier(l -> l.heatCapacity, amount * 60f, filter));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float liquidEfficiencyMultiplier(Liquid liquid){
|
||||||
|
return liquid.heatCapacity;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package mindustry.world.consumers;
|
||||||
|
|
||||||
|
import mindustry.type.*;
|
||||||
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
|
public class ConsumeLiquidTemperature extends ConsumeLiquidFilter{
|
||||||
|
public float minTemperature;
|
||||||
|
|
||||||
|
public ConsumeLiquidTemperature(float minTemperature, float amount){
|
||||||
|
this.amount = amount;
|
||||||
|
this.minTemperature = minTemperature;
|
||||||
|
this.filter = liquid -> liquid.temperature >= this.minTemperature;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConsumeLiquidTemperature(float amount){
|
||||||
|
this(0.2f, amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConsumeLiquidTemperature(){
|
||||||
|
this(0.2f);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void display(Stats stats){
|
||||||
|
stats.add(booster ? Stat.booster : Stat.input, StatValues.liquidEffMultiplier(l -> l.temperature, amount * 60f, filter));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float liquidEfficiencyMultiplier(Liquid liquid){
|
||||||
|
return liquid.temperature;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package mindustry.world.consumers;
|
||||||
|
|
||||||
|
import mindustry.type.*;
|
||||||
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
|
public class ConsumeLiquidViscosity extends ConsumeLiquidFilter{
|
||||||
|
public float minViscosity;
|
||||||
|
|
||||||
|
public ConsumeLiquidViscosity(float minViscosity, float amount){
|
||||||
|
this.amount = amount;
|
||||||
|
this.minViscosity = minViscosity;
|
||||||
|
this.filter = liquid -> liquid.viscosity >= this.minViscosity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConsumeLiquidViscosity(float amount){
|
||||||
|
this(0.2f, amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConsumeLiquidViscosity(){
|
||||||
|
this(0.2f);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void display(Stats stats){
|
||||||
|
stats.add(booster ? Stat.booster : Stat.input, StatValues.liquidEffMultiplier(l -> l.viscosity, amount * 60f, filter));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float liquidEfficiencyMultiplier(Liquid liquid){
|
||||||
|
return liquid.viscosity;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package mindustry.world.consumers;
|
package mindustry.world.consumers;
|
||||||
|
|
||||||
import arc.func.Func;
|
import arc.func.*;
|
||||||
import arc.scene.ui.layout.Table;
|
import arc.scene.ui.layout.*;
|
||||||
import mindustry.Vars;
|
import mindustry.*;
|
||||||
import mindustry.gen.Building;
|
import mindustry.gen.*;
|
||||||
import mindustry.type.LiquidStack;
|
import mindustry.type.*;
|
||||||
import mindustry.ui.ReqImage;
|
import mindustry.ui.*;
|
||||||
import mindustry.world.Block;
|
import mindustry.world.*;
|
||||||
|
|
||||||
public class ConsumeLiquidsDynamic extends Consume{
|
public class ConsumeLiquidsDynamic extends Consume{
|
||||||
public final Func<Building, LiquidStack[]> liquids;
|
public final Func<Building, LiquidStack[]> liquids;
|
||||||
|
|||||||
Reference in New Issue
Block a user