From 95eab94c80a6174d373fefb52bfbe4e267ece0e1 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 2 Apr 2019 10:51:52 -0400 Subject: [PATCH] Fixed liquid blocks not accepting liquids --- core/src/io/anuke/mindustry/ui/Minimap.java | 20 +++++++++++++++++-- .../world/blocks/distribution/Conduit.java | 2 +- .../blocks/distribution/LiquidBridge.java | 5 +++++ .../blocks/distribution/LiquidRouter.java | 5 +++++ .../world/blocks/production/Fracker.java | 2 +- 5 files changed, 30 insertions(+), 4 deletions(-) diff --git a/core/src/io/anuke/mindustry/ui/Minimap.java b/core/src/io/anuke/mindustry/ui/Minimap.java index 7361a66e67..395b88cba7 100644 --- a/core/src/io/anuke/mindustry/ui/Minimap.java +++ b/core/src/io/anuke/mindustry/ui/Minimap.java @@ -48,6 +48,7 @@ public class Minimap extends Container{ margin(margin); addListener(new InputListener(){ + @Override public boolean scrolled(InputEvent event, float x, float y, float amountx, float amounty){ renderer.minimap.zoomBy(amounty); @@ -68,15 +69,30 @@ public class Minimap extends Container{ }); addListener(new ClickListener(){ + { + tapSquareSize = Unit.dp.scl(11f); + } @Override public void touchUp(InputEvent event, float x, float y, int pointer, KeyCode button){ - float tapSquareSize = Unit.dp.scl(14f); - if(Math.abs(x - touchDownX) < tapSquareSize && Math.abs(y - touchDownY) < tapSquareSize){ + if(inTapSquare()){ super.touchUp(event, x, y, pointer, button); + }else{ + pressed = false; + pressedPointer = -1; + pressedButton = null; + cancelled = false; } } + @Override + public void touchDragged(InputEvent event, float x, float y, int pointer){ + if(!inTapSquare(x, y)){ + invalidateTapSquare(); + } + super.touchDragged(event, x, y, pointer); + } + @Override public void clicked(InputEvent event, float x, float y){ ui.minimap.show(); diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Conduit.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Conduit.java index 22d9c2e873..8097ef6325 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Conduit.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Conduit.java @@ -108,7 +108,7 @@ public class Conduit extends LiquidBlock{ @Override public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){ tile.entity.noSleep(); - return super.acceptLiquid(tile, source, liquid, amount) && ((2 + source.relativeTo(tile.x, tile.y)) % 4 != tile.getRotation()); + return tile.entity.liquids.get(liquid) + amount < liquidCapacity && (tile.entity.liquids.current() == liquid || tile.entity.liquids.get(tile.entity.liquids.current()) < 0.2f) && ((2 + source.relativeTo(tile.x, tile.y)) % 4 != tile.getRotation()); } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidBridge.java b/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidBridge.java index ba8350c5d4..1d27e7951d 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidBridge.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidBridge.java @@ -56,6 +56,11 @@ public class LiquidBridge extends ItemBridge{ return false; } + @Override + public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){ + return tile.entity.liquids.get(liquid) + amount < liquidCapacity && (tile.entity.liquids.current() == liquid || tile.entity.liquids.get(tile.entity.liquids.current()) < 0.2f); + } + @Override public boolean canDumpLiquid(Tile tile, Tile to, Liquid liquid){ ItemBridgeEntity entity = tile.entity(); diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidRouter.java b/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidRouter.java index 4ca44a549c..52dbe920fd 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidRouter.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidRouter.java @@ -1,5 +1,6 @@ package io.anuke.mindustry.world.blocks.distribution; +import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.LiquidBlock; @@ -17,4 +18,8 @@ public class LiquidRouter extends LiquidBlock{ } } + @Override + public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){ + return tile.entity.liquids.get(liquid) + amount < liquidCapacity && (tile.entity.liquids.current() == liquid || tile.entity.liquids.get(tile.entity.liquids.current()) < 0.2f); + } } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java b/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java index 0e2501bdb5..177e870768 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java @@ -60,7 +60,7 @@ public class Fracker extends SolidPump{ public void update(Tile tile){ FrackerEntity entity = tile.entity(); - if(entity.cons.valid() && entity.accumulator < itemUseTime){ + if(entity.cons.valid()){ if(entity.accumulator >= itemUseTime){ entity.cons.trigger(); entity.accumulator -= itemUseTime;