From d0d0f5a26f4c1a7d447c4656de9527c58582a33b Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 4 Oct 2020 15:05:30 -0400 Subject: [PATCH] Fixed #2834 --- core/src/mindustry/entities/comp/BuildingComp.java | 8 ++++---- .../world/blocks/defense/turrets/LiquidTurret.java | 2 +- .../mindustry/world/blocks/distribution/ItemBridge.java | 4 ++-- .../src/mindustry/world/blocks/liquid/ArmoredConduit.java | 4 ++-- core/src/mindustry/world/blocks/liquid/Conduit.java | 4 ++-- .../src/mindustry/world/blocks/liquid/LiquidJunction.java | 2 +- core/src/mindustry/world/blocks/liquid/LiquidRouter.java | 4 ++-- .../mindustry/world/blocks/production/Incinerator.java | 2 +- core/src/mindustry/world/blocks/sandbox/LiquidVoid.java | 2 +- tests/src/test/java/power/ItemLiquidGeneratorTests.java | 2 +- 10 files changed, 17 insertions(+), 17 deletions(-) diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index 1b57f81362..41fa7ea9b5 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -465,8 +465,8 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, return block.consumes.itemFilters.get(item.id) && items.get(item) < getMaximumAccepted(item); } - public boolean acceptLiquid(Building source, Liquid liquid, float amount){ - return block.hasLiquids && liquids.get(liquid) + amount < block.liquidCapacity && block.consumes.liquidfilters.get(liquid.id); + public boolean acceptLiquid(Building source, Liquid liquid){ + return block.hasLiquids && block.consumes.liquidfilters.get(liquid.id); } public void handleLiquid(Building source, Liquid liquid, float amount){ @@ -498,7 +498,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, public void transferLiquid(Building next, float amount, Liquid liquid){ float flow = Math.min(next.block.liquidCapacity - next.liquids.get(liquid), amount); - if(next.acceptLiquid(self(), liquid, flow)){ + if(next.acceptLiquid(self(), liquid)){ next.handleLiquid(self(), liquid, flow); liquids.remove(liquid, flow); } @@ -530,7 +530,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, float flow = Math.min(Mathf.clamp((fract - ofract) * (1f)) * (block.liquidCapacity), liquids.get(liquid)); flow = Math.min(flow, next.block.liquidCapacity - next.liquids.get(liquid)); - if(flow > 0f && ofract <= fract && next.acceptLiquid(self(), liquid, flow)){ + if(flow > 0f && ofract <= fract && next.acceptLiquid(self(), liquid)){ next.handleLiquid(self(), liquid, flow); liquids.remove(liquid, flow); return flow; diff --git a/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java b/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java index 2710d0248b..e34d221d53 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java @@ -133,7 +133,7 @@ public class LiquidTurret extends Turret{ } @Override - public boolean acceptLiquid(Building source, Liquid liquid, float amount){ + public boolean acceptLiquid(Building source, Liquid liquid){ return ammoTypes.get(liquid) != null && (liquids.current() == liquid || (ammoTypes.containsKey(liquids.current()) && liquids.get(liquids.current()) <= 1f / ammoTypes.get(liquids.current()).ammoMultiplier + 0.001f)); diff --git a/core/src/mindustry/world/blocks/distribution/ItemBridge.java b/core/src/mindustry/world/blocks/distribution/ItemBridge.java index da162d9398..2d09c69eba 100644 --- a/core/src/mindustry/world/blocks/distribution/ItemBridge.java +++ b/core/src/mindustry/world/blocks/distribution/ItemBridge.java @@ -354,7 +354,7 @@ public class ItemBridge extends Block{ } @Override - public boolean acceptLiquid(Building source, Liquid liquid, float amount){ + public boolean acceptLiquid(Building source, Liquid liquid){ if(team != source.team || !hasLiquids) return false; Tile other = world.tile(link); @@ -368,7 +368,7 @@ public class ItemBridge extends Block{ return false; } - return liquids.get(liquid) + amount < liquidCapacity && (liquids.current() == liquid || liquids.get(liquids.current()) < 0.2f); + return (liquids.current() == liquid || liquids.get(liquids.current()) < 0.2f); } protected boolean linked(Building source){ diff --git a/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java b/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java index 6b8739b93a..a84148af09 100644 --- a/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java +++ b/core/src/mindustry/world/blocks/liquid/ArmoredConduit.java @@ -32,8 +32,8 @@ public class ArmoredConduit extends Conduit{ } @Override - public boolean acceptLiquid(Building source, Liquid liquid, float amount){ - return super.acceptLiquid(source, liquid, amount) && (source.block instanceof Conduit || + public boolean acceptLiquid(Building source, Liquid liquid){ + return super.acceptLiquid(source, liquid) && (source.block instanceof Conduit || source.tile.absoluteRelativeTo(tile.x, tile.y) == rotation); } } diff --git a/core/src/mindustry/world/blocks/liquid/Conduit.java b/core/src/mindustry/world/blocks/liquid/Conduit.java index 8824d44d34..b2fa75b045 100644 --- a/core/src/mindustry/world/blocks/liquid/Conduit.java +++ b/core/src/mindustry/world/blocks/liquid/Conduit.java @@ -120,9 +120,9 @@ public class Conduit extends LiquidBlock implements Autotiler{ } @Override - public boolean acceptLiquid(Building source, Liquid liquid, float amount){ + public boolean acceptLiquid(Building source, Liquid liquid){ noSleep(); - return liquids.get(liquid) + amount < liquidCapacity && (liquids.current() == liquid || liquids.currentAmount() < 0.2f) + return (liquids.current() == liquid || liquids.currentAmount() < 0.2f) && ((source.relativeTo(tile.x, tile.y) + 2) % 4 != rotation); } diff --git a/core/src/mindustry/world/blocks/liquid/LiquidJunction.java b/core/src/mindustry/world/blocks/liquid/LiquidJunction.java index 2845281d96..09e5b70bb0 100644 --- a/core/src/mindustry/world/blocks/liquid/LiquidJunction.java +++ b/core/src/mindustry/world/blocks/liquid/LiquidJunction.java @@ -41,7 +41,7 @@ public class LiquidJunction extends LiquidBlock{ int dir = source.relativeTo(tile.x, tile.y); dir = (dir + 4) % 4; Building next = nearby(dir); - if(next == null || (!next.acceptLiquid(this, liquid, 0f) && !(next.block instanceof LiquidJunction))){ + if(next == null || (!next.acceptLiquid(this, liquid) && !(next.block instanceof LiquidJunction))){ return this; } return next.getLiquidDestination(this, liquid); diff --git a/core/src/mindustry/world/blocks/liquid/LiquidRouter.java b/core/src/mindustry/world/blocks/liquid/LiquidRouter.java index 60fab24df1..d3befe8233 100644 --- a/core/src/mindustry/world/blocks/liquid/LiquidRouter.java +++ b/core/src/mindustry/world/blocks/liquid/LiquidRouter.java @@ -20,8 +20,8 @@ public class LiquidRouter extends LiquidBlock{ } @Override - public boolean acceptLiquid(Building source, Liquid liquid, float amount){ - return liquids.get(liquid) + amount < liquidCapacity && (liquids.current() == liquid || liquids.currentAmount() < 0.2f); + public boolean acceptLiquid(Building source, Liquid liquid){ + return (liquids.current() == liquid || liquids.currentAmount() < 0.2f); } } } diff --git a/core/src/mindustry/world/blocks/production/Incinerator.java b/core/src/mindustry/world/blocks/production/Incinerator.java index 1e16aa4faa..d51caf06c2 100644 --- a/core/src/mindustry/world/blocks/production/Incinerator.java +++ b/core/src/mindustry/world/blocks/production/Incinerator.java @@ -73,7 +73,7 @@ public class Incinerator extends Block{ } @Override - public boolean acceptLiquid(Building source, Liquid liquid, float amount){ + public boolean acceptLiquid(Building source, Liquid liquid){ return heat > 0.5f; } } diff --git a/core/src/mindustry/world/blocks/sandbox/LiquidVoid.java b/core/src/mindustry/world/blocks/sandbox/LiquidVoid.java index 0f49ffd3a7..3eeb628db8 100644 --- a/core/src/mindustry/world/blocks/sandbox/LiquidVoid.java +++ b/core/src/mindustry/world/blocks/sandbox/LiquidVoid.java @@ -21,7 +21,7 @@ public class LiquidVoid extends Block{ public class LiquidVoidBuild extends Building{ @Override - public boolean acceptLiquid(Building source, Liquid liquid, float amount){ + public boolean acceptLiquid(Building source, Liquid liquid){ return enabled; } diff --git a/tests/src/test/java/power/ItemLiquidGeneratorTests.java b/tests/src/test/java/power/ItemLiquidGeneratorTests.java index 08f636c566..1e2224753f 100644 --- a/tests/src/test/java/power/ItemLiquidGeneratorTests.java +++ b/tests/src/test/java/power/ItemLiquidGeneratorTests.java @@ -87,7 +87,7 @@ public class ItemLiquidGeneratorTests extends PowerTestFixture{ final float expectedRemainingLiquidAmount = Math.max(0.0f, availableLiquidAmount - expectedConsumptionPerTick * Time.delta); createGenerator(inputType); - assertTrue(entity.acceptLiquid(null, liquid, availableLiquidAmount), inputType + " | " + parameterDescription + ": Liquids which will be declined by the generator don't need to be tested - The code won't be called for those cases."); + assertTrue(entity.acceptLiquid(null, liquid), inputType + " | " + parameterDescription + ": Liquids which will be declined by the generator don't need to be tested - The code won't be called for those cases."); entity.liquids.add(liquid, availableLiquidAmount); entity.cons.update();