diff --git a/core/src/mindustry/entities/type/TileEntity.java b/core/src/mindustry/entities/type/TileEntity.java index 0814a4ce58..9a41e6c9fb 100644 --- a/core/src/mindustry/entities/type/TileEntity.java +++ b/core/src/mindustry/entities/type/TileEntity.java @@ -122,6 +122,10 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{ return dead || tile.entity != this; } + public boolean isOmnidirectional(){ + return !block.rotate; + } + @CallSuper public void write(DataOutput stream) throws IOException{ stream.writeShort((short)health); diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 89d393c114..a0294013ad 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -53,8 +53,6 @@ public class Block extends BlockStorage{ public boolean solidifes; /** whether this is rotateable */ public boolean rotate; - /** whether this dumps as well */ - public boolean dumpling; /** whether you can break this with rightclick */ public boolean breakable; /** whether to add this block to brokenblocks */ @@ -669,13 +667,6 @@ public class Block extends BlockStorage{ } } - /** - * Whether blending this tile should respect dumpling. - */ - public boolean blendDumpling(Tile tile){ - return false; - } - public String getDisplayName(Tile tile){ return localizedName; } diff --git a/core/src/mindustry/world/blocks/Autotiler.java b/core/src/mindustry/world/blocks/Autotiler.java index a5fd69924f..89700e739a 100644 --- a/core/src/mindustry/world/blocks/Autotiler.java +++ b/core/src/mindustry/world/blocks/Autotiler.java @@ -91,13 +91,13 @@ public interface Autotiler{ default boolean blendsArmored(Tile tile, int rotation, int otherx, int othery, int otherrot, Block otherblock){ return (Point2.equals(tile.x + Geometry.d4(rotation).x, tile.y + Geometry.d4(rotation).y, otherx, othery) - || ((!otherblock.rotate && Edges.getFacingEdge(otherblock, otherx, othery, tile) != null && + || ((world.tile(otherx, othery).entity.isOmnidirectional() && Edges.getFacingEdge(otherblock, otherx, othery, tile) != null && Edges.getFacingEdge(otherblock, otherx, othery, tile).relativeTo(tile) == rotation) || (otherblock.rotate && Point2.equals(otherx + Geometry.d4(otherrot).x, othery + Geometry.d4(otherrot).y, tile.x, tile.y)))); } default boolean lookingAt(Tile tile, int rotation, int otherx, int othery, int otherrot, Block otherblock){ return (Point2.equals(tile.x + Geometry.d4(rotation).x, tile.y + Geometry.d4(rotation).y, otherx, othery) - || (!(otherblock.rotate && !(otherblock.dumpling && otherblock.blendDumpling(world.tile(otherx, othery)))) || Point2.equals(otherx + Geometry.d4(otherrot).x, othery + Geometry.d4(otherrot).y, tile.x, tile.y))); + || (world.tile(otherx, othery).entity.isOmnidirectional() || Point2.equals(otherx + Geometry.d4(otherrot).x, othery + Geometry.d4(otherrot).y, tile.x, tile.y))); } boolean blends(Tile tile, int rotation, int otherx, int othery, int otherrot, Block otherblock); diff --git a/core/src/mindustry/world/blocks/distribution/Conveyor.java b/core/src/mindustry/world/blocks/distribution/Conveyor.java index f1a58eb62d..e64b184c24 100644 --- a/core/src/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/mindustry/world/blocks/distribution/Conveyor.java @@ -285,7 +285,7 @@ public class Conveyor extends Block implements Autotiler{ ConveyorEntity e = tile.ent(); if(e.len >= capacity) return false; int direction = source == null ? 0 : Math.abs(source.relativeTo(tile.x, tile.y) - tile.rotation()); - return (((direction == 0) && e.minitem >= itemSpace) || ((direction % 2 == 1) && e.minitem > 0.7f)) && (source == null || !((source.block().rotate && !source.block().dumpling) && (source.rotation() + 2) % 4 == tile.rotation())); + return (((direction == 0) && e.minitem >= itemSpace) || ((direction % 2 == 1) && e.minitem > 0.7f)) && (source == null || source.entity.isOmnidirectional() && (source.rotation() + 2) % 4 == tile.rotation()); } @Override diff --git a/core/src/mindustry/world/blocks/distribution/CraterConveyor.java b/core/src/mindustry/world/blocks/distribution/CraterConveyor.java index c270240133..1855f6bc50 100644 --- a/core/src/mindustry/world/blocks/distribution/CraterConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/CraterConveyor.java @@ -43,7 +43,6 @@ public class CraterConveyor extends Block implements Autotiler{ idleSound = Sounds.conveyor; idleSoundVolume = 0.004f; unloadable = false; - dumpling = true; } @Override @@ -270,6 +269,11 @@ public class CraterConveyor extends Block implements Autotiler{ dump = stream.readByte(); reload = stream.readFloat(); } + + @Override + public boolean isOmnidirectional(){ + return blendbit2 == 6; + } } // crater conveyor tiles that input into this one @@ -336,9 +340,4 @@ public class CraterConveyor extends Block implements Autotiler{ entity.dump = (byte)((entity.dump + 1) % prox); } - - @Override - public boolean blendDumpling(Tile tile){ - return tile.ent().blendbit2 == 6; - } }