From 3e682859402e272785cf1698923ba4475841d334 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Sun, 10 Mar 2024 12:47:30 -0700 Subject: [PATCH 01/16] Better display for efficiency multiplier consumes --- core/assets/bundles/bundle.properties | 1 + .../world/consumers/ConsumeItemCharged.java | 6 +++ .../world/consumers/ConsumeItemExplosive.java | 6 +++ .../world/consumers/ConsumeItemFlammable.java | 6 +++ .../consumers/ConsumeItemRadioactive.java | 6 +++ .../consumers/ConsumeLiquidFlammable.java | 6 +++ core/src/mindustry/world/meta/StatValues.java | 38 ++++++++++++++++++- 7 files changed, 68 insertions(+), 1 deletion(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index e9805b2eb0d..314251af28c 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -996,6 +996,7 @@ stat.buildspeedmultiplier = Build Speed Multiplier stat.reactive = Reacts stat.immunities = Immunities stat.healing = Healing +stat.efficiency = [accent]{0}% Efficiency ability.forcefield = Force Field ability.repairfield = Repair Field diff --git a/core/src/mindustry/world/consumers/ConsumeItemCharged.java b/core/src/mindustry/world/consumers/ConsumeItemCharged.java index 20d6a007699..f466ec4b28e 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemCharged.java +++ b/core/src/mindustry/world/consumers/ConsumeItemCharged.java @@ -1,6 +1,7 @@ package mindustry.world.consumers; import mindustry.gen.*; +import mindustry.world.meta.*; /** For mods. I don't use this (yet). */ public class ConsumeItemCharged extends ConsumeItemFilter{ @@ -20,4 +21,9 @@ 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)); + } } diff --git a/core/src/mindustry/world/consumers/ConsumeItemExplosive.java b/core/src/mindustry/world/consumers/ConsumeItemExplosive.java index 0bed91970b9..776008542c3 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemExplosive.java +++ b/core/src/mindustry/world/consumers/ConsumeItemExplosive.java @@ -1,6 +1,7 @@ package mindustry.world.consumers; import mindustry.gen.*; +import mindustry.world.meta.*; public class ConsumeItemExplosive extends ConsumeItemFilter{ public float minExplosiveness; @@ -19,4 +20,9 @@ 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)); + } } diff --git a/core/src/mindustry/world/consumers/ConsumeItemFlammable.java b/core/src/mindustry/world/consumers/ConsumeItemFlammable.java index 34b5a74b02a..1515cf010ab 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemFlammable.java +++ b/core/src/mindustry/world/consumers/ConsumeItemFlammable.java @@ -1,6 +1,7 @@ package mindustry.world.consumers; import mindustry.gen.*; +import mindustry.world.meta.*; public class ConsumeItemFlammable extends ConsumeItemFilter{ public float minFlammability; @@ -19,4 +20,9 @@ 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)); + } } diff --git a/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java b/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java index b4beca53b24..03583d747a4 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java +++ b/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java @@ -1,6 +1,7 @@ package mindustry.world.consumers; import mindustry.gen.*; +import mindustry.world.meta.*; public class ConsumeItemRadioactive extends ConsumeItemFilter{ public float minRadioactivity; @@ -19,4 +20,9 @@ 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)); + } } diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidFlammable.java b/core/src/mindustry/world/consumers/ConsumeLiquidFlammable.java index be399031542..63ca76cdb33 100644 --- a/core/src/mindustry/world/consumers/ConsumeLiquidFlammable.java +++ b/core/src/mindustry/world/consumers/ConsumeLiquidFlammable.java @@ -1,6 +1,7 @@ package mindustry.world.consumers; import mindustry.gen.*; +import mindustry.world.meta.*; public class ConsumeLiquidFlammable extends ConsumeLiquidFilter{ public float minFlammability; @@ -24,4 +25,9 @@ public float efficiencyMultiplier(Building build){ var liq = getConsumed(build); return liq == null ? 0f : liq.flammability; } + + @Override + public void display(Stats stats){ + stats.add(booster ? Stat.booster : Stat.input, StatValues.liquidEffMultiplier(l -> l.flammability, filter)); + } } diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index 36872d3546b..b135b14bc1c 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -292,6 +292,42 @@ public static StatValue boosters(float reload, float maxUsed, float multiplier, }; } + public static StatValue itemEffMultiplier(Floatf efficiency, Boolf filter){ + return table -> { + table.row(); + table.table(c -> { + for(Item item : content.items()){ + if(!filter.get(item)) continue; + + 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); + }).growX().pad(5).row(); + } + }).growX().colspan(table.getColumns()); + table.row(); + }; + } + + public static StatValue liquidEffMultiplier(Floatf efficiency, Boolf filter){ + return table -> { + table.row(); + table.table(c -> { + for(Liquid liquid : content.liquids()){ + if(!filter.get(liquid)) continue; + + c.table(Styles.grayPanel, b -> { + b.image(liquid.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit); + b.add(liquid.localizedName).left().grow(); + b.add(Core.bundle.format("stat.efficiency", fixValue(efficiency.get(liquid) * 100f))).right().pad(10f).padRight(15f); + }).growX().pad(5).row(); + } + }).growX().colspan(table.getColumns()); + table.row(); + }; + } + public static StatValue speedBoosters(String unit, float amount, float speed, boolean strength, Boolf filter){ return table -> { table.row(); @@ -554,4 +590,4 @@ private static String ammoStat(float val){ private static TextureRegion icon(UnlockableContent t){ return t.uiIcon; } -} \ No newline at end of file +} From 8e0d3fee67984f7ab3d6eb67e9b843d1b91df863 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Sun, 10 Mar 2024 13:01:52 -0700 Subject: [PATCH 02/16] Allow for simultaneously having both item and liquid efficiency multipliers --- .../mindustry/world/blocks/power/ConsumeGenerator.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/world/blocks/power/ConsumeGenerator.java b/core/src/mindustry/world/blocks/power/ConsumeGenerator.java index a3b29b4cfdb..1347a2141ed 100644 --- a/core/src/mindustry/world/blocks/power/ConsumeGenerator.java +++ b/core/src/mindustry/world/blocks/power/ConsumeGenerator.java @@ -80,12 +80,14 @@ public class ConsumeGeneratorBuild extends GeneratorBuild{ @Override public void updateEfficiencyMultiplier(){ + efficiencyMultiplier = 1f; if(filterItem != null){ float m = filterItem.efficiencyMultiplier(this); - if(m > 0) efficiencyMultiplier = m; - }else if(filterLiquid != null){ + if(m > 0) efficiencyMultiplier *= m; + } + if(filterLiquid != null){ float m = filterLiquid.efficiencyMultiplier(this); - if(m > 0) efficiencyMultiplier = m; + if(m > 0) efficiencyMultiplier *= m; } } From afddb274f6aa44183a9cb34e9db174bec2a9cfca Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Sun, 10 Mar 2024 13:06:56 -0700 Subject: [PATCH 03/16] Don't display locked or hidden items --- core/src/mindustry/world/meta/StatValues.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index b135b14bc1c..045ecac88e4 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -296,9 +296,7 @@ public static StatValue itemEffMultiplier(Floatf efficiency, Boolf f return table -> { table.row(); table.table(c -> { - for(Item item : content.items()){ - if(!filter.get(item)) continue; - + for(Item item : content.items().select(i -> filter.get(i) && i.unlockedNow() && !i.isHidden())){ c.table(Styles.grayPanel, b -> { b.image(item.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit); b.add(item.localizedName).left().grow(); @@ -314,9 +312,7 @@ public static StatValue liquidEffMultiplier(Floatf efficiency, Boolf { table.row(); table.table(c -> { - for(Liquid liquid : content.liquids()){ - if(!filter.get(liquid)) continue; - + for(Liquid liquid : content.liquids().select(l -> filter.get(l) && l.unlockedNow() && !l.isHidden())){ c.table(Styles.grayPanel, b -> { b.image(liquid.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit); b.add(liquid.localizedName).left().grow(); From 24b845e8b1bdabd07fb991b07aa3e0dc3ae4cf24 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Fri, 15 Mar 2024 09:25:10 -0700 Subject: [PATCH 04/16] Notice of explosiveness I feel like my changes are getting a *bit* intrusive. --- core/assets/bundles/bundle.properties | 3 ++- .../world/blocks/power/ConsumeGenerator.java | 8 ++++++++ .../world/consumers/ConsumeItemCharged.java | 10 +++++----- .../world/consumers/ConsumeItemExplosive.java | 10 +++++----- .../world/consumers/ConsumeItemFilter.java | 10 ++++++++++ .../world/consumers/ConsumeItemFlammable.java | 10 +++++----- .../world/consumers/ConsumeItemRadioactive.java | 10 +++++----- core/src/mindustry/world/meta/StatValues.java | 15 +++++++++++++-- 8 files changed, 53 insertions(+), 23 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 3f28157541d..43ae441a013 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -996,7 +996,8 @@ stat.buildspeedmultiplier = Build Speed Multiplier stat.reactive = Reacts stat.immunities = Immunities stat.healing = Healing -stat.efficiency = [accent]{0}% Efficiency +stat.efficiency = [stat]{0}% Efficiency +stat.explosive = [negstat]Explosive ability.forcefield = Force Field ability.repairfield = Repair Field diff --git a/core/src/mindustry/world/blocks/power/ConsumeGenerator.java b/core/src/mindustry/world/blocks/power/ConsumeGenerator.java index 1347a2141ed..5b52cc3d169 100644 --- a/core/src/mindustry/world/blocks/power/ConsumeGenerator.java +++ b/core/src/mindustry/world/blocks/power/ConsumeGenerator.java @@ -73,6 +73,14 @@ public void setStats(){ 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{ diff --git a/core/src/mindustry/world/consumers/ConsumeItemCharged.java b/core/src/mindustry/world/consumers/ConsumeItemCharged.java index f466ec4b28e..31391430245 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemCharged.java +++ b/core/src/mindustry/world/consumers/ConsumeItemCharged.java @@ -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). */ @@ -17,13 +18,12 @@ public ConsumeItemCharged(){ } @Override - public float efficiencyMultiplier(Building build){ - var item = getConsumed(build); - return item == null ? 0f : item.charge; + public void display(Stats stats){ + stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.charge, filter)); } @Override - public void display(Stats stats){ - stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.charge, filter)); + public float itemEfficiencyMultiplier(Item item){ + return item.charge; } } diff --git a/core/src/mindustry/world/consumers/ConsumeItemExplosive.java b/core/src/mindustry/world/consumers/ConsumeItemExplosive.java index 776008542c3..e0801c1c7af 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemExplosive.java +++ b/core/src/mindustry/world/consumers/ConsumeItemExplosive.java @@ -1,6 +1,7 @@ package mindustry.world.consumers; import mindustry.gen.*; +import mindustry.type.*; import mindustry.world.meta.*; public class ConsumeItemExplosive extends ConsumeItemFilter{ @@ -16,13 +17,12 @@ public ConsumeItemExplosive(){ } @Override - public float efficiencyMultiplier(Building build){ - var item = getConsumed(build); - return item == null ? 0f : item.explosiveness; + public void display(Stats stats){ + stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.explosiveness, filter)); } @Override - public void display(Stats stats){ - stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.explosiveness, filter)); + public float itemEfficiencyMultiplier(Item item){ + return item.explosiveness; } } diff --git a/core/src/mindustry/world/consumers/ConsumeItemFilter.java b/core/src/mindustry/world/consumers/ConsumeItemFilter.java index 8993bd59e1d..422a23752d8 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemFilter.java +++ b/core/src/mindustry/world/consumers/ConsumeItemFilter.java @@ -68,4 +68,14 @@ public float efficiency(Building build){ 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; + } } diff --git a/core/src/mindustry/world/consumers/ConsumeItemFlammable.java b/core/src/mindustry/world/consumers/ConsumeItemFlammable.java index 1515cf010ab..d9d113f809b 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemFlammable.java +++ b/core/src/mindustry/world/consumers/ConsumeItemFlammable.java @@ -1,6 +1,7 @@ package mindustry.world.consumers; import mindustry.gen.*; +import mindustry.type.*; import mindustry.world.meta.*; public class ConsumeItemFlammable extends ConsumeItemFilter{ @@ -16,13 +17,12 @@ public ConsumeItemFlammable(){ } @Override - public float efficiencyMultiplier(Building build){ - var item = getConsumed(build); - return item == null ? 0f : item.flammability; + public void display(Stats stats){ + stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.flammability, filter)); } @Override - public void display(Stats stats){ - stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.flammability, filter)); + public float itemEfficiencyMultiplier(Item item){ + return item.flammability; } } diff --git a/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java b/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java index 03583d747a4..8d96bfbc832 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java +++ b/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java @@ -1,6 +1,7 @@ package mindustry.world.consumers; import mindustry.gen.*; +import mindustry.type.*; import mindustry.world.meta.*; public class ConsumeItemRadioactive extends ConsumeItemFilter{ @@ -16,13 +17,12 @@ public ConsumeItemRadioactive(){ } @Override - public float efficiencyMultiplier(Building build){ - var item = getConsumed(build); - return item == null ? 0f : item.radioactivity; + public void display(Stats stats){ + stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.radioactivity, filter)); } @Override - public void display(Stats stats){ - stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.radioactivity, filter)); + public float itemEfficiencyMultiplier(Item item){ + return item.radioactivity; } } diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index 045ecac88e4..68b18735700 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -292,7 +292,7 @@ public static StatValue boosters(float reload, float maxUsed, float multiplier, }; } - public static StatValue itemEffMultiplier(Floatf efficiency, Boolf filter){ + public static StatValue itemEffMultiplier(Floatf efficiency, Boolf filter, Boolf explosive){ return table -> { table.row(); table.table(c -> { @@ -300,7 +300,14 @@ public static StatValue itemEffMultiplier(Floatf efficiency, Boolf f 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 static StatValue itemEffMultiplier(Floatf efficiency, Boolf f }; } + public static StatValue itemEffMultiplier(Floatf efficiency, Boolf filter){ + return itemEffMultiplier(efficiency, filter, i -> false); + } + public static StatValue liquidEffMultiplier(Floatf efficiency, Boolf filter){ return table -> { table.row(); From e1476abbfdd9a431dafc49dc62a6a2d59f603af7 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Sat, 16 Mar 2024 14:28:44 -0700 Subject: [PATCH 05/16] Remove explosive danger notice Surprise!!!! --- .../mindustry/world/blocks/power/ConsumeGenerator.java | 8 -------- core/src/mindustry/world/meta/StatValues.java | 10 +--------- 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/core/src/mindustry/world/blocks/power/ConsumeGenerator.java b/core/src/mindustry/world/blocks/power/ConsumeGenerator.java index 5b52cc3d169..1347a2141ed 100644 --- a/core/src/mindustry/world/blocks/power/ConsumeGenerator.java +++ b/core/src/mindustry/world/blocks/power/ConsumeGenerator.java @@ -73,14 +73,6 @@ public void setStats(){ 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{ diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index 68b18735700..8880ba07120 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -292,7 +292,7 @@ public static StatValue boosters(float reload, float maxUsed, float multiplier, }; } - public static StatValue itemEffMultiplier(Floatf efficiency, Boolf filter, Boolf explosive){ + public static StatValue itemEffMultiplier(Floatf efficiency, Boolf filter){ return table -> { table.row(); table.table(c -> { @@ -302,10 +302,6 @@ public static StatValue itemEffMultiplier(Floatf efficiency, Boolf f b.add(item.localizedName).left().grow(); 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(); @@ -315,10 +311,6 @@ public static StatValue itemEffMultiplier(Floatf efficiency, Boolf f }; } - public static StatValue itemEffMultiplier(Floatf efficiency, Boolf filter){ - return itemEffMultiplier(efficiency, filter, i -> false); - } - public static StatValue liquidEffMultiplier(Floatf efficiency, Boolf filter){ return table -> { table.row(); From a1b3f54516952ab1c29c4af676302c5f4d93840c Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Sat, 16 Mar 2024 15:04:27 -0700 Subject: [PATCH 06/16] Add liquid consumption rates --- .../consumers/ConsumeLiquidFlammable.java | 2 +- core/src/mindustry/world/meta/StatValues.java | 21 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidFlammable.java b/core/src/mindustry/world/consumers/ConsumeLiquidFlammable.java index 63ca76cdb33..0ab32aa70ae 100644 --- a/core/src/mindustry/world/consumers/ConsumeLiquidFlammable.java +++ b/core/src/mindustry/world/consumers/ConsumeLiquidFlammable.java @@ -28,6 +28,6 @@ public float efficiencyMultiplier(Building build){ @Override public void display(Stats stats){ - stats.add(booster ? Stat.booster : Stat.input, StatValues.liquidEffMultiplier(l -> l.flammability, filter)); + stats.add(booster ? Stat.booster : Stat.input, StatValues.liquidEffMultiplier(l -> l.flammability, amount * 60f, filter)); } } diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index 8880ba07120..5ebb83ba34e 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -300,10 +300,7 @@ public static StatValue itemEffMultiplier(Floatf efficiency, Boolf f c.table(Styles.grayPanel, b -> { b.image(item.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit); b.add(item.localizedName).left().grow(); - b.table(e -> { - e.add(Core.bundle.format("stat.efficiency", fixValue(efficiency.get(item) * 100f))).right().labelAlign(Align.right); - }).right().pad(10f).padRight(15f); - + b.add(Core.bundle.format("stat.efficiency", fixValue(efficiency.get(item) * 100f))).right().pad(10f).padRight(15f); }).growX().pad(5).row(); } }).growX().colspan(table.getColumns()); @@ -311,18 +308,26 @@ public static StatValue itemEffMultiplier(Floatf efficiency, Boolf f }; } - public static StatValue liquidEffMultiplier(Floatf efficiency, Boolf filter){ + public static StatValue liquidEffMultiplier(Floatf efficiency, float amount, Boolf filter){ return table -> { table.row(); table.table(c -> { for(Liquid liquid : content.liquids().select(l -> filter.get(l) && l.unlockedNow() && !l.isHidden())){ c.table(Styles.grayPanel, b -> { - b.image(liquid.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit); - b.add(liquid.localizedName).left().grow(); + b.add(new Stack(){{ + Image i = new Image(liquid.uiIcon).setScaling(Scaling.fit); + i.setAlign(Align.left); + add(i); + + Table t = new Table().left().bottom(); + t.add(Strings.autoFixed(amount, 2) + StatUnit.perSecond.localized()).style(Styles.outlineLabel); + add(t); + }}).height(40).pad(10f).padRight(0).left(); + b.add(liquid.localizedName).left().padLeft(6f).grow(); b.add(Core.bundle.format("stat.efficiency", fixValue(efficiency.get(liquid) * 100f))).right().pad(10f).padRight(15f); }).growX().pad(5).row(); } - }).growX().colspan(table.getColumns()); + }).growX().colspan(table.getColumns()).row(); table.row(); }; } From 11dcbe19f40b5054fad739f2ecb48dae4c1a0a01 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Sat, 16 Mar 2024 15:16:15 -0700 Subject: [PATCH 07/16] Better LiquidDisplay --- core/src/mindustry/ui/LiquidDisplay.java | 20 ++++++++++--------- core/src/mindustry/world/meta/StatValues.java | 11 +--------- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/core/src/mindustry/ui/LiquidDisplay.java b/core/src/mindustry/ui/LiquidDisplay.java index d0982374ab6..84cd9db95fc 100644 --- a/core/src/mindustry/ui/LiquidDisplay.java +++ b/core/src/mindustry/ui/LiquidDisplay.java @@ -15,25 +15,27 @@ public class LiquidDisplay extends Table{ public final float amount; public final boolean perSecond; - public LiquidDisplay(Liquid liquid, float amount, boolean perSecond){ + public LiquidDisplay(Liquid liquid, float size, float amount, boolean perSecond){ this.liquid = liquid; this.amount = amount; this.perSecond = perSecond; + left(); add(new Stack(){{ - add(new Image(liquid.uiIcon).setScaling(Scaling.fit)); + Image i = new Image(liquid.uiIcon).setScaling(Scaling.fit); + i.setAlign(Align.left); + add(i); if(amount != 0){ Table t = new Table().left().bottom(); - t.add(Strings.autoFixed(amount, 2)).style(Styles.outlineLabel); + t.add(Strings.autoFixed(amount, 2) + (perSecond ? StatUnit.perSecond.localized() : "")).style(Styles.outlineLabel); add(t); } - }}).size(iconMed).padRight(3 + (amount != 0 && Strings.autoFixed(amount, 2).length() > 2 ? 8 : 0)); - - if(perSecond){ - add(StatUnit.perSecond.localized()).padLeft(2).padRight(5).color(Color.lightGray).style(Styles.outlineLabel); - } + }}).height(size).left(); + add(liquid.localizedName).padLeft(6f).left(); + } - add(liquid.localizedName); + public LiquidDisplay(Liquid liquid, float amount, boolean perSecond){ + this(liquid, iconMed, amount, perSecond); } } diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index 5ebb83ba34e..6017315a44b 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -314,16 +314,7 @@ public static StatValue liquidEffMultiplier(Floatf efficiency, float amo table.table(c -> { for(Liquid liquid : content.liquids().select(l -> filter.get(l) && l.unlockedNow() && !l.isHidden())){ c.table(Styles.grayPanel, b -> { - b.add(new Stack(){{ - Image i = new Image(liquid.uiIcon).setScaling(Scaling.fit); - i.setAlign(Align.left); - add(i); - - Table t = new Table().left().bottom(); - t.add(Strings.autoFixed(amount, 2) + StatUnit.perSecond.localized()).style(Styles.outlineLabel); - add(t); - }}).height(40).pad(10f).padRight(0).left(); - b.add(liquid.localizedName).left().padLeft(6f).grow(); + b.add(new LiquidDisplay(liquid, 40f, amount, true)).pad(10f).left().grow(); b.add(Core.bundle.format("stat.efficiency", fixValue(efficiency.get(liquid) * 100f))).right().pad(10f).padRight(15f); }).growX().pad(5).row(); } From 66893e5c85cc2391b221ba0e9b6221bb9836505b Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Sat, 16 Mar 2024 15:25:13 -0700 Subject: [PATCH 08/16] Text Style --- core/src/mindustry/ui/LiquidDisplay.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/ui/LiquidDisplay.java b/core/src/mindustry/ui/LiquidDisplay.java index 84cd9db95fc..d05fc142084 100644 --- a/core/src/mindustry/ui/LiquidDisplay.java +++ b/core/src/mindustry/ui/LiquidDisplay.java @@ -32,7 +32,7 @@ public LiquidDisplay(Liquid liquid, float size, float amount, boolean perSecond) add(t); } }}).height(size).left(); - add(liquid.localizedName).padLeft(6f).left(); + add(liquid.localizedName).left().style(Styles.outlineLabel); } public LiquidDisplay(Liquid liquid, float amount, boolean perSecond){ From c3823b8477beaee9ef112d0fe4640539349daf71 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Tue, 19 Mar 2024 12:22:32 -0700 Subject: [PATCH 09/16] Cleaner liquid display + Display item rate --- core/src/mindustry/ui/LiquidDisplay.java | 6 +++--- core/src/mindustry/world/blocks/power/ConsumeGenerator.java | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/ui/LiquidDisplay.java b/core/src/mindustry/ui/LiquidDisplay.java index d05fc142084..28a11c424e8 100644 --- a/core/src/mindustry/ui/LiquidDisplay.java +++ b/core/src/mindustry/ui/LiquidDisplay.java @@ -26,13 +26,13 @@ public LiquidDisplay(Liquid liquid, float size, float amount, boolean perSecond) i.setAlign(Align.left); add(i); - if(amount != 0){ + if(!perSecond && amount != 0){ Table t = new Table().left().bottom(); - t.add(Strings.autoFixed(amount, 2) + (perSecond ? StatUnit.perSecond.localized() : "")).style(Styles.outlineLabel); + t.add(Strings.autoFixed(amount, 2)).style(Styles.outlineLabel); add(t); } }}).height(size).left(); - add(liquid.localizedName).left().style(Styles.outlineLabel); + add(liquid.localizedName + (perSecond && amount != 0 ? "\n[lightgray]" + Strings.autoFixed(amount, 2) + StatUnit.perSecond.localized() : "[]")).left().style(Styles.outlineLabel); } public LiquidDisplay(Liquid liquid, float amount, boolean perSecond){ diff --git a/core/src/mindustry/world/blocks/power/ConsumeGenerator.java b/core/src/mindustry/world/blocks/power/ConsumeGenerator.java index 1347a2141ed..49cad2fc7e6 100644 --- a/core/src/mindustry/world/blocks/power/ConsumeGenerator.java +++ b/core/src/mindustry/world/blocks/power/ConsumeGenerator.java @@ -64,6 +64,7 @@ public void init(){ @Override public void setStats(){ + stats.timePeriod = itemDuration; super.setStats(); if(hasItems){ From e40dab9733cf1eaeda14c83ef98f05004414742a Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Tue, 19 Mar 2024 18:37:03 -0700 Subject: [PATCH 10/16] Shift the item display over a column instead --- core/src/mindustry/world/meta/StatValues.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index 6017315a44b..b5900d206a8 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -66,7 +66,7 @@ public static StatValue number(float value, StatUnit unit){ } public static StatValue liquid(Liquid liquid, float amount, boolean perSecond){ - return table -> table.add(new LiquidDisplay(liquid, amount, perSecond)); + return table -> table.add(new LiquidDisplay(liquid, amount, perSecond)).left(); } public static StatValue liquids(Boolf filter, float amount, boolean perSecond){ @@ -295,7 +295,9 @@ public static StatValue boosters(float reload, float maxUsed, float multiplier, public static StatValue itemEffMultiplier(Floatf efficiency, Boolf filter){ return table -> { table.row(); + table.add().size(0); table.table(c -> { + c.left(); for(Item item : content.items().select(i -> filter.get(i) && i.unlockedNow() && !i.isHidden())){ c.table(Styles.grayPanel, b -> { b.image(item.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit); @@ -303,23 +305,23 @@ public static StatValue itemEffMultiplier(Floatf efficiency, Boolf f b.add(Core.bundle.format("stat.efficiency", fixValue(efficiency.get(item) * 100f))).right().pad(10f).padRight(15f); }).growX().pad(5).row(); } - }).growX().colspan(table.getColumns()); - table.row(); + }).growX().colspan(table.getColumns() - 2).row(); }; } public static StatValue liquidEffMultiplier(Floatf efficiency, float amount, Boolf filter){ return table -> { table.row(); + table.add().size(0); table.table(c -> { + c.left(); for(Liquid liquid : content.liquids().select(l -> filter.get(l) && l.unlockedNow() && !l.isHidden())){ c.table(Styles.grayPanel, b -> { b.add(new LiquidDisplay(liquid, 40f, amount, true)).pad(10f).left().grow(); b.add(Core.bundle.format("stat.efficiency", fixValue(efficiency.get(liquid) * 100f))).right().pad(10f).padRight(15f); }).growX().pad(5).row(); } - }).growX().colspan(table.getColumns()).row(); - table.row(); + }).growX().colspan(table.getColumns() - 2).row(); }; } From 92485bd4e65912cc51d6a4552659aa4cab9954eb Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Tue, 19 Mar 2024 18:45:09 -0700 Subject: [PATCH 11/16] Revert "Shift the item display over a column instead" This reverts commit e40dab9733cf1eaeda14c83ef98f05004414742a. --- core/src/mindustry/world/meta/StatValues.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index b5900d206a8..f4fd1e5b9b7 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -295,9 +295,7 @@ public static StatValue boosters(float reload, float maxUsed, float multiplier, public static StatValue itemEffMultiplier(Floatf efficiency, Boolf filter){ return table -> { table.row(); - table.add().size(0); table.table(c -> { - c.left(); for(Item item : content.items().select(i -> filter.get(i) && i.unlockedNow() && !i.isHidden())){ c.table(Styles.grayPanel, b -> { b.image(item.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit); @@ -305,23 +303,21 @@ public static StatValue itemEffMultiplier(Floatf efficiency, Boolf f b.add(Core.bundle.format("stat.efficiency", fixValue(efficiency.get(item) * 100f))).right().pad(10f).padRight(15f); }).growX().pad(5).row(); } - }).growX().colspan(table.getColumns() - 2).row(); + }).growX().colspan(table.getColumns()).row(); }; } public static StatValue liquidEffMultiplier(Floatf efficiency, float amount, Boolf filter){ return table -> { table.row(); - table.add().size(0); table.table(c -> { - c.left(); for(Liquid liquid : content.liquids().select(l -> filter.get(l) && l.unlockedNow() && !l.isHidden())){ c.table(Styles.grayPanel, b -> { b.add(new LiquidDisplay(liquid, 40f, amount, true)).pad(10f).left().grow(); b.add(Core.bundle.format("stat.efficiency", fixValue(efficiency.get(liquid) * 100f))).right().pad(10f).padRight(15f); }).growX().pad(5).row(); } - }).growX().colspan(table.getColumns() - 2).row(); + }).growX().colspan(table.getColumns()).row(); }; } From a3a7598e6da99c7ca5dae561f6853e0cbec0fa16 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Mon, 25 Mar 2024 10:48:21 -0700 Subject: [PATCH 12/16] Un-lonely the liquid display --- core/src/mindustry/ui/LiquidDisplay.java | 2 +- core/src/mindustry/ui/dialogs/ContentInfoDialog.java | 1 - core/src/mindustry/world/meta/StatValues.java | 2 ++ 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/ui/LiquidDisplay.java b/core/src/mindustry/ui/LiquidDisplay.java index 28a11c424e8..f49b4e7862c 100644 --- a/core/src/mindustry/ui/LiquidDisplay.java +++ b/core/src/mindustry/ui/LiquidDisplay.java @@ -31,7 +31,7 @@ public LiquidDisplay(Liquid liquid, float size, float amount, boolean perSecond) t.add(Strings.autoFixed(amount, 2)).style(Styles.outlineLabel); add(t); } - }}).height(size).left(); + }}).height(size).minWidth(size).left(); add(liquid.localizedName + (perSecond && amount != 0 ? "\n[lightgray]" + Strings.autoFixed(amount, 2) + StatUnit.perSecond.localized() : "[]")).left().style(Styles.outlineLabel); } diff --git a/core/src/mindustry/ui/dialogs/ContentInfoDialog.java b/core/src/mindustry/ui/dialogs/ContentInfoDialog.java index 8defe26a248..2d305e823a1 100644 --- a/core/src/mindustry/ui/dialogs/ContentInfoDialog.java +++ b/core/src/mindustry/ui/dialogs/ContentInfoDialog.java @@ -82,7 +82,6 @@ public void show(UnlockableContent content){ value.display(inset); inset.add().size(10f); } - }).fillX().padLeft(10); table.row(); } diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index f4fd1e5b9b7..c1046d78ca9 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -294,6 +294,7 @@ public static StatValue boosters(float reload, float maxUsed, float multiplier, public static StatValue itemEffMultiplier(Floatf efficiency, Boolf filter){ return table -> { + table.getCells().peek().growX(); //Expand the spacer on the row above to push everything to the left table.row(); table.table(c -> { for(Item item : content.items().select(i -> filter.get(i) && i.unlockedNow() && !i.isHidden())){ @@ -309,6 +310,7 @@ public static StatValue itemEffMultiplier(Floatf efficiency, Boolf f public static StatValue liquidEffMultiplier(Floatf efficiency, float amount, Boolf filter){ return table -> { + table.getCells().peek().growX(); //Expand the spacer on the row above to push everything to the left table.row(); table.table(c -> { for(Liquid liquid : content.liquids().select(l -> filter.get(l) && l.unlockedNow() && !l.isHidden())){ From faf78b6e7784a228e95afda0b6986683e024caa6 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Mon, 25 Mar 2024 11:00:24 -0700 Subject: [PATCH 13/16] Display item consumption rate --- core/src/mindustry/world/consumers/ConsumeItemCharged.java | 2 +- core/src/mindustry/world/consumers/ConsumeItemExplosive.java | 2 +- core/src/mindustry/world/consumers/ConsumeItemFilter.java | 2 +- core/src/mindustry/world/consumers/ConsumeItemFlammable.java | 2 +- .../src/mindustry/world/consumers/ConsumeItemRadioactive.java | 2 +- core/src/mindustry/world/meta/StatValues.java | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/core/src/mindustry/world/consumers/ConsumeItemCharged.java b/core/src/mindustry/world/consumers/ConsumeItemCharged.java index 31391430245..a06bd71e006 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemCharged.java +++ b/core/src/mindustry/world/consumers/ConsumeItemCharged.java @@ -19,7 +19,7 @@ public ConsumeItemCharged(){ @Override public void display(Stats stats){ - stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.charge, filter)); + stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.charge, stats.timePeriod, filter)); } @Override diff --git a/core/src/mindustry/world/consumers/ConsumeItemExplosive.java b/core/src/mindustry/world/consumers/ConsumeItemExplosive.java index e0801c1c7af..43b807a58b7 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemExplosive.java +++ b/core/src/mindustry/world/consumers/ConsumeItemExplosive.java @@ -18,7 +18,7 @@ public ConsumeItemExplosive(){ @Override public void display(Stats stats){ - stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.explosiveness, filter)); + stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.explosiveness, stats.timePeriod, filter)); } @Override diff --git a/core/src/mindustry/world/consumers/ConsumeItemFilter.java b/core/src/mindustry/world/consumers/ConsumeItemFilter.java index 422a23752d8..01b630b7c09 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemFilter.java +++ b/core/src/mindustry/world/consumers/ConsumeItemFilter.java @@ -66,7 +66,7 @@ public float efficiency(Building build){ @Override public void display(Stats stats){ - stats.add(booster ? Stat.booster : Stat.input, stats.timePeriod < 0 ? StatValues.items(filter) : StatValues.items(stats.timePeriod, filter)); + stats.add(booster ? Stat.booster : Stat.input, StatValues.items(stats.timePeriod, filter)); } @Override diff --git a/core/src/mindustry/world/consumers/ConsumeItemFlammable.java b/core/src/mindustry/world/consumers/ConsumeItemFlammable.java index d9d113f809b..dcd9432f6cd 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemFlammable.java +++ b/core/src/mindustry/world/consumers/ConsumeItemFlammable.java @@ -18,7 +18,7 @@ public ConsumeItemFlammable(){ @Override public void display(Stats stats){ - stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.flammability, filter)); + stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.flammability, stats.timePeriod, filter)); } @Override diff --git a/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java b/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java index 8d96bfbc832..866ccef8981 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java +++ b/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java @@ -18,7 +18,7 @@ public ConsumeItemRadioactive(){ @Override public void display(Stats stats){ - stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.radioactivity, filter)); + stats.add(booster ? Stat.booster : Stat.input, StatValues.itemEffMultiplier(i -> i.radioactivity, stats.timePeriod, filter)); } @Override diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index c1046d78ca9..c34cfb970bd 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -292,7 +292,7 @@ public static StatValue boosters(float reload, float maxUsed, float multiplier, }; } - public static StatValue itemEffMultiplier(Floatf efficiency, Boolf filter){ + public static StatValue itemEffMultiplier(Floatf efficiency, float timePeriod, Boolf filter){ return table -> { table.getCells().peek().growX(); //Expand the spacer on the row above to push everything to the left table.row(); @@ -300,7 +300,7 @@ public static StatValue itemEffMultiplier(Floatf efficiency, Boolf f for(Item item : content.items().select(i -> filter.get(i) && i.unlockedNow() && !i.isHidden())){ 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(item.localizedName + (timePeriod > 0 ? "\n[lightgray]" + Strings.autoFixed(1f / (timePeriod / 60f), 2) + StatUnit.perSecond.localized() : "")).left().grow(); b.add(Core.bundle.format("stat.efficiency", fixValue(efficiency.get(item) * 100f))).right().pad(10f).padRight(15f); }).growX().pad(5).row(); } From c8816816340bc2d103467fe282f1783a13106135 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Tue, 26 Mar 2024 00:21:32 -0700 Subject: [PATCH 14/16] Add consumers for other liquid fields Temperature, heat capacity, viscosity, and explosiveness --- .../world/consumers/ConsumeItemCharged.java | 1 - .../world/consumers/ConsumeItemExplosive.java | 1 - .../world/consumers/ConsumeItemFlammable.java | 1 - .../consumers/ConsumeItemRadioactive.java | 1 - .../consumers/ConsumeLiquidExplosive.java | 32 +++++++++++++++++++ .../world/consumers/ConsumeLiquidFilter.java | 12 ++++++- .../consumers/ConsumeLiquidFlammable.java | 11 +++---- .../consumers/ConsumeLiquidHeatCapacity.java | 32 +++++++++++++++++++ .../consumers/ConsumeLiquidTemperature.java | 32 +++++++++++++++++++ .../consumers/ConsumeLiquidViscosity.java | 32 +++++++++++++++++++ .../consumers/ConsumeLiquidsDynamic.java | 14 ++++---- 11 files changed, 151 insertions(+), 18 deletions(-) create mode 100644 core/src/mindustry/world/consumers/ConsumeLiquidExplosive.java create mode 100644 core/src/mindustry/world/consumers/ConsumeLiquidHeatCapacity.java create mode 100644 core/src/mindustry/world/consumers/ConsumeLiquidTemperature.java create mode 100644 core/src/mindustry/world/consumers/ConsumeLiquidViscosity.java diff --git a/core/src/mindustry/world/consumers/ConsumeItemCharged.java b/core/src/mindustry/world/consumers/ConsumeItemCharged.java index a06bd71e006..91cb01fa6be 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemCharged.java +++ b/core/src/mindustry/world/consumers/ConsumeItemCharged.java @@ -1,6 +1,5 @@ package mindustry.world.consumers; -import mindustry.gen.*; import mindustry.type.*; import mindustry.world.meta.*; diff --git a/core/src/mindustry/world/consumers/ConsumeItemExplosive.java b/core/src/mindustry/world/consumers/ConsumeItemExplosive.java index 43b807a58b7..c7ee0840a99 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemExplosive.java +++ b/core/src/mindustry/world/consumers/ConsumeItemExplosive.java @@ -1,6 +1,5 @@ package mindustry.world.consumers; -import mindustry.gen.*; import mindustry.type.*; import mindustry.world.meta.*; diff --git a/core/src/mindustry/world/consumers/ConsumeItemFlammable.java b/core/src/mindustry/world/consumers/ConsumeItemFlammable.java index dcd9432f6cd..840d7158a61 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemFlammable.java +++ b/core/src/mindustry/world/consumers/ConsumeItemFlammable.java @@ -1,6 +1,5 @@ package mindustry.world.consumers; -import mindustry.gen.*; import mindustry.type.*; import mindustry.world.meta.*; diff --git a/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java b/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java index 866ccef8981..0d0f11f1d65 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java +++ b/core/src/mindustry/world/consumers/ConsumeItemRadioactive.java @@ -1,6 +1,5 @@ package mindustry.world.consumers; -import mindustry.gen.*; import mindustry.type.*; import mindustry.world.meta.*; diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidExplosive.java b/core/src/mindustry/world/consumers/ConsumeLiquidExplosive.java new file mode 100644 index 00000000000..3134d145caa --- /dev/null +++ b/core/src/mindustry/world/consumers/ConsumeLiquidExplosive.java @@ -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; + } +} diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidFilter.java b/core/src/mindustry/world/consumers/ConsumeLiquidFilter.java index 7dbaab70436..fd55d6c597b 100644 --- a/core/src/mindustry/world/consumers/ConsumeLiquidFilter.java +++ b/core/src/mindustry/world/consumers/ConsumeLiquidFilter.java @@ -53,7 +53,13 @@ public float efficiency(Building build){ if(ed <= 0.00000001f) return 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){ if(filter.get(build.liquids.current()) && build.liquids.currentAmount() > 0){ return build.liquids.current(); @@ -74,4 +80,8 @@ public float efficiency(Building build){ public void display(Stats stats){ stats.add(booster ? Stat.booster : Stat.input, StatValues.liquids(filter, amount * 60f, true)); } + + public float liquidEfficiencyMultiplier(Liquid liquid){ + return 1f; + } } diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidFlammable.java b/core/src/mindustry/world/consumers/ConsumeLiquidFlammable.java index 0ab32aa70ae..df2826b0e79 100644 --- a/core/src/mindustry/world/consumers/ConsumeLiquidFlammable.java +++ b/core/src/mindustry/world/consumers/ConsumeLiquidFlammable.java @@ -1,6 +1,6 @@ package mindustry.world.consumers; -import mindustry.gen.*; +import mindustry.type.*; import mindustry.world.meta.*; public class ConsumeLiquidFlammable extends ConsumeLiquidFilter{ @@ -21,13 +21,12 @@ public ConsumeLiquidFlammable(){ } @Override - public float efficiencyMultiplier(Building build){ - var liq = getConsumed(build); - return liq == null ? 0f : liq.flammability; + public void display(Stats stats){ + stats.add(booster ? Stat.booster : Stat.input, StatValues.liquidEffMultiplier(l -> l.flammability, amount * 60f, filter)); } @Override - public void display(Stats stats){ - stats.add(booster ? Stat.booster : Stat.input, StatValues.liquidEffMultiplier(l -> l.flammability, amount * 60f, filter)); + public float liquidEfficiencyMultiplier(Liquid liquid){ + return liquid.flammability; } } diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidHeatCapacity.java b/core/src/mindustry/world/consumers/ConsumeLiquidHeatCapacity.java new file mode 100644 index 00000000000..3d5975626d3 --- /dev/null +++ b/core/src/mindustry/world/consumers/ConsumeLiquidHeatCapacity.java @@ -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; + } +} diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidTemperature.java b/core/src/mindustry/world/consumers/ConsumeLiquidTemperature.java new file mode 100644 index 00000000000..ca58f2798ce --- /dev/null +++ b/core/src/mindustry/world/consumers/ConsumeLiquidTemperature.java @@ -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; + } +} diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidViscosity.java b/core/src/mindustry/world/consumers/ConsumeLiquidViscosity.java new file mode 100644 index 00000000000..8f51569e7d5 --- /dev/null +++ b/core/src/mindustry/world/consumers/ConsumeLiquidViscosity.java @@ -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; + } +} diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidsDynamic.java b/core/src/mindustry/world/consumers/ConsumeLiquidsDynamic.java index 9079658629c..ae82560ef4b 100644 --- a/core/src/mindustry/world/consumers/ConsumeLiquidsDynamic.java +++ b/core/src/mindustry/world/consumers/ConsumeLiquidsDynamic.java @@ -1,12 +1,12 @@ package mindustry.world.consumers; -import arc.func.Func; -import arc.scene.ui.layout.Table; -import mindustry.Vars; -import mindustry.gen.Building; -import mindustry.type.LiquidStack; -import mindustry.ui.ReqImage; -import mindustry.world.Block; +import arc.func.*; +import arc.scene.ui.layout.*; +import mindustry.*; +import mindustry.gen.*; +import mindustry.type.*; +import mindustry.ui.*; +import mindustry.world.*; public class ConsumeLiquidsDynamic extends Consume{ public final Func liquids; From 1cd3b49539029cdf08d65b9114f02be04d418dfe Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Fri, 29 Mar 2024 17:48:15 -0700 Subject: [PATCH 15/16] Remove unused bundle --- core/assets/bundles/bundle.properties | 1 - 1 file changed, 1 deletion(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 43ae441a013..1875cd15695 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -997,7 +997,6 @@ stat.reactive = Reacts stat.immunities = Immunities stat.healing = Healing stat.efficiency = [stat]{0}% Efficiency -stat.explosive = [negstat]Explosive ability.forcefield = Force Field ability.repairfield = Repair Field From a58ff06111ca7a6ce6f60441e893575dfa81dfcc Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Thu, 11 Apr 2024 09:25:10 +0800 Subject: [PATCH 16/16] Remove added liquid consumes --- .../consumers/ConsumeLiquidExplosive.java | 32 ------------------- .../consumers/ConsumeLiquidHeatCapacity.java | 32 ------------------- .../consumers/ConsumeLiquidTemperature.java | 32 ------------------- .../consumers/ConsumeLiquidViscosity.java | 32 ------------------- 4 files changed, 128 deletions(-) delete mode 100644 core/src/mindustry/world/consumers/ConsumeLiquidExplosive.java delete mode 100644 core/src/mindustry/world/consumers/ConsumeLiquidHeatCapacity.java delete mode 100644 core/src/mindustry/world/consumers/ConsumeLiquidTemperature.java delete mode 100644 core/src/mindustry/world/consumers/ConsumeLiquidViscosity.java diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidExplosive.java b/core/src/mindustry/world/consumers/ConsumeLiquidExplosive.java deleted file mode 100644 index 3134d145caa..00000000000 --- a/core/src/mindustry/world/consumers/ConsumeLiquidExplosive.java +++ /dev/null @@ -1,32 +0,0 @@ -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; - } -} diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidHeatCapacity.java b/core/src/mindustry/world/consumers/ConsumeLiquidHeatCapacity.java deleted file mode 100644 index 3d5975626d3..00000000000 --- a/core/src/mindustry/world/consumers/ConsumeLiquidHeatCapacity.java +++ /dev/null @@ -1,32 +0,0 @@ -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; - } -} diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidTemperature.java b/core/src/mindustry/world/consumers/ConsumeLiquidTemperature.java deleted file mode 100644 index ca58f2798ce..00000000000 --- a/core/src/mindustry/world/consumers/ConsumeLiquidTemperature.java +++ /dev/null @@ -1,32 +0,0 @@ -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; - } -} diff --git a/core/src/mindustry/world/consumers/ConsumeLiquidViscosity.java b/core/src/mindustry/world/consumers/ConsumeLiquidViscosity.java deleted file mode 100644 index 8f51569e7d5..00000000000 --- a/core/src/mindustry/world/consumers/ConsumeLiquidViscosity.java +++ /dev/null @@ -1,32 +0,0 @@ -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; - } -}