Notice of explosiveness
I feel like my changes are getting a *bit* intrusive.
This commit is contained in:
@@ -73,6 +73,14 @@ public class ConsumeGenerator extends PowerGenerator{
|
||||
if(outputLiquid != null){
|
||||
stats.add(Stat.output, StatValues.liquid(outputLiquid.liquid, outputLiquid.amount * 60f, true));
|
||||
}
|
||||
|
||||
if(filterItem != null){
|
||||
ConsumeItemExplode explode = findConsumer(c -> c instanceof ConsumeItemExplode);
|
||||
if(explode != null){
|
||||
stats.remove(Stat.input);
|
||||
stats.add(Stat.input, StatValues.itemEffMultiplier(i -> filterItem.itemEfficiencyMultiplier(i), filterItem.filter, explode.filter));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class ConsumeGeneratorBuild extends GeneratorBuild{
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package mindustry.world.consumers;
|
||||
|
||||
import mindustry.gen.*;
|
||||
import mindustry.type.*;
|
||||
import mindustry.world.meta.*;
|
||||
|
||||
/** For mods. I don't use this (yet). */
|
||||
@@ -16,14 +17,13 @@ public class ConsumeItemCharged extends ConsumeItemFilter{
|
||||
this(0.2f);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float efficiencyMultiplier(Building build){
|
||||
var item = getConsumed(build);
|
||||
return item == null ? 0f : item.charge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void display(Stats stats){
|
||||
stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.charge, filter));
|
||||
}
|
||||
|
||||
@Override
|
||||
public float itemEfficiencyMultiplier(Item item){
|
||||
return item.charge;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package mindustry.world.consumers;
|
||||
|
||||
import mindustry.gen.*;
|
||||
import mindustry.type.*;
|
||||
import mindustry.world.meta.*;
|
||||
|
||||
public class ConsumeItemExplosive extends ConsumeItemFilter{
|
||||
@@ -15,14 +16,13 @@ public class ConsumeItemExplosive extends ConsumeItemFilter{
|
||||
this(0.2f);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float efficiencyMultiplier(Building build){
|
||||
var item = getConsumed(build);
|
||||
return item == null ? 0f : item.explosiveness;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void display(Stats stats){
|
||||
stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.explosiveness, filter));
|
||||
}
|
||||
|
||||
@Override
|
||||
public float itemEfficiencyMultiplier(Item item){
|
||||
return item.explosiveness;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,4 +68,14 @@ public class ConsumeItemFilter extends Consume{
|
||||
public void display(Stats stats){
|
||||
stats.add(booster ? Stat.booster : Stat.input, stats.timePeriod < 0 ? StatValues.items(filter) : StatValues.items(stats.timePeriod, filter));
|
||||
}
|
||||
|
||||
@Override
|
||||
public float efficiencyMultiplier(Building build){
|
||||
var item = getConsumed(build);
|
||||
return item == null ? 0f : itemEfficiencyMultiplier(item);
|
||||
}
|
||||
|
||||
public float itemEfficiencyMultiplier(Item item){
|
||||
return 1f;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package mindustry.world.consumers;
|
||||
|
||||
import mindustry.gen.*;
|
||||
import mindustry.type.*;
|
||||
import mindustry.world.meta.*;
|
||||
|
||||
public class ConsumeItemFlammable extends ConsumeItemFilter{
|
||||
@@ -15,14 +16,13 @@ public class ConsumeItemFlammable extends ConsumeItemFilter{
|
||||
this(0.2f);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float efficiencyMultiplier(Building build){
|
||||
var item = getConsumed(build);
|
||||
return item == null ? 0f : item.flammability;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void display(Stats stats){
|
||||
stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.flammability, filter));
|
||||
}
|
||||
|
||||
@Override
|
||||
public float itemEfficiencyMultiplier(Item item){
|
||||
return item.flammability;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package mindustry.world.consumers;
|
||||
|
||||
import mindustry.gen.*;
|
||||
import mindustry.type.*;
|
||||
import mindustry.world.meta.*;
|
||||
|
||||
public class ConsumeItemRadioactive extends ConsumeItemFilter{
|
||||
@@ -15,14 +16,13 @@ public class ConsumeItemRadioactive extends ConsumeItemFilter{
|
||||
this(0.2f);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float efficiencyMultiplier(Building build){
|
||||
var item = getConsumed(build);
|
||||
return item == null ? 0f : item.radioactivity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void display(Stats stats){
|
||||
stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.radioactivity, filter));
|
||||
}
|
||||
|
||||
@Override
|
||||
public float itemEfficiencyMultiplier(Item item){
|
||||
return item.radioactivity;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -292,7 +292,7 @@ public class StatValues{
|
||||
};
|
||||
}
|
||||
|
||||
public static StatValue itemEffMultiplier(Floatf<Item> efficiency, Boolf<Item> filter){
|
||||
public static StatValue itemEffMultiplier(Floatf<Item> efficiency, Boolf<Item> filter, Boolf<Item> explosive){
|
||||
return table -> {
|
||||
table.row();
|
||||
table.table(c -> {
|
||||
@@ -300,7 +300,14 @@ public class StatValues{
|
||||
c.table(Styles.grayPanel, b -> {
|
||||
b.image(item.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit);
|
||||
b.add(item.localizedName).left().grow();
|
||||
b.add(Core.bundle.format("stat.efficiency", fixValue(efficiency.get(item) * 100f))).right().pad(10f).padRight(15f);
|
||||
b.table(e -> {
|
||||
e.add(Core.bundle.format("stat.efficiency", fixValue(efficiency.get(item) * 100f))).right().labelAlign(Align.right);
|
||||
if(explosive.get(item)){
|
||||
e.row();
|
||||
e.add(Core.bundle.get("stat.explosive")).right().labelAlign(Align.right);
|
||||
}
|
||||
}).right().pad(10f).padRight(15f);
|
||||
|
||||
}).growX().pad(5).row();
|
||||
}
|
||||
}).growX().colspan(table.getColumns());
|
||||
@@ -308,6 +315,10 @@ public class StatValues{
|
||||
};
|
||||
}
|
||||
|
||||
public static StatValue itemEffMultiplier(Floatf<Item> efficiency, Boolf<Item> filter){
|
||||
return itemEffMultiplier(efficiency, filter, i -> false);
|
||||
}
|
||||
|
||||
public static StatValue liquidEffMultiplier(Floatf<Liquid> efficiency, Boolf<Liquid> filter){
|
||||
return table -> {
|
||||
table.row();
|
||||
|
||||
Reference in New Issue
Block a user