diff --git a/core/src/io/anuke/mindustry/content/blocks/DistributionBlocks.java b/core/src/io/anuke/mindustry/content/blocks/DistributionBlocks.java index 526563033e..b5bbf1ad52 100644 --- a/core/src/io/anuke/mindustry/content/blocks/DistributionBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/DistributionBlocks.java @@ -28,12 +28,11 @@ public class DistributionBlocks extends BlockList implements ContentList{ bridgeConveyor = new BufferedItemBridge("bridge-conveyor"){{ range = 3; - hasPower = false; - consumes.power(0.05f); }}; phaseConveyor = new ItemBridge("phase-conveyor"){{ range = 7; + hasPower = false; consumes.power(0.05f); }}; diff --git a/core/src/io/anuke/mindustry/content/blocks/LiquidBlocks.java b/core/src/io/anuke/mindustry/content/blocks/LiquidBlocks.java index 30205142f4..8634381425 100644 --- a/core/src/io/anuke/mindustry/content/blocks/LiquidBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/LiquidBlocks.java @@ -64,6 +64,8 @@ public class LiquidBlocks extends BlockList implements ContentList{ phaseConduit = new LiquidBridge("phase-conduit"){{ range = 7; + hasPower = false; + consumes.power(0.05f); }}; } } diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java b/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java index f162f1a530..da6c3f30d0 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java @@ -243,8 +243,10 @@ public class ItemBridge extends Block{ public boolean acceptItem(Item item, Tile tile, Tile source){ ItemBridgeEntity entity = tile.entity(); Tile other = world.tile(entity.link); + boolean linked = false; if(linkValid(tile, other)){ + linked = true; int rel = tile.absoluteRelativeTo(other.x, other.y); int rel2 = tile.relativeTo(source.x, source.y); @@ -264,7 +266,7 @@ public class ItemBridge extends Block{ } } - return tile.entity.items.total() < itemCapacity; + return tile.entity.items.total() < itemCapacity && (linked || source.block() instanceof ItemBridge); } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/TunnelConduit.java b/core/src/io/anuke/mindustry/world/blocks/distribution/TunnelConduit.java deleted file mode 100644 index 8639a99da9..0000000000 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/TunnelConduit.java +++ /dev/null @@ -1,78 +0,0 @@ -package io.anuke.mindustry.world.blocks.distribution; - -import com.badlogic.gdx.graphics.g2d.TextureRegion; -import io.anuke.mindustry.type.Liquid; -import io.anuke.mindustry.world.BarType; -import io.anuke.mindustry.world.Tile; -import io.anuke.mindustry.world.blocks.LiquidBlock; -import io.anuke.ucore.graphics.Draw; - -public class TunnelConduit extends LiquidBlock{ - protected int maxdist = 3; - protected float speed = 53; - - protected TunnelConduit(String name){ - super(name); - rotate = true; - solid = true; - health = 70; - hasItems = true; - instantTransfer = true; - } - - @Override - public void setBars(){ - super.setBars(); - bars.remove(BarType.liquid); - } - - @Override - public TextureRegion[] getIcon(){ - return new TextureRegion[]{Draw.region(name)}; - } - - @Override - public void draw(Tile tile){ - Draw.rect(region, tile.drawx(), tile.drawy(), tile.getRotation() * 90); - } - - @Override - public void handleLiquid(Tile tile, Tile source, Liquid liquid, float amount){ - Tile tunnel = getDestTunnel(tile); - if(tunnel == null) return; - Tile to = tunnel.getNearby(tunnel.getRotation()); - if(to == null || !(to.block().hasLiquids)) return; - - if(to.block().acceptLiquid(to, tunnel, liquid, amount)) - to.block().handleLiquid(to, tunnel, liquid, amount); - } - - @Override - public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){ - int rot = source.relativeTo(tile.x, tile.y); - if(rot != (tile.getRotation() + 2) % 4) return false; - Tile tunnel = getDestTunnel(tile); - - if(tunnel != null){ - Tile to = tunnel.getNearby(tunnel.getRotation()); - return to != null && (to.block().hasLiquids) && - (to.block()).acceptLiquid(to, tunnel, liquid, amount); - }else{ - return false; - } - } - - Tile getDestTunnel(Tile tile){ - Tile dest = tile; - int rel = (tile.getRotation() + 2) % 4; - for(int i = 0; i < maxdist; i++){ - if(dest == null) return null; - dest = dest.getNearby(rel); - if(dest != null && dest.block() instanceof TunnelConduit && dest.getRotation() == rel - && dest.getNearby(rel) != null){ - return dest; - } - } - return null; - } -}