From 0b9483cffc137bb08f7e5c70c09ffa69b29b4a1e Mon Sep 17 00:00:00 2001 From: Leonid Skorospelov Date: Thu, 27 Jan 2022 19:57:43 +0000 Subject: [PATCH] Preserve conveyors end rotation on placement (#6496) * Preserve conveyors end rotation on placement * Formatting --- core/src/mindustry/input/InputHandler.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index 0bcc17727e..c283e516f3 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -1269,19 +1269,24 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } int endRotation = -1; + var start = world.build(startX, startY); + var end = world.build(endX, endY); if(diagonal){ - var start = world.build(startX, startY); - var end = world.build(endX, endY); if(block != null && start instanceof ChainedBuilding && end instanceof ChainedBuilding && block.canReplace(end.block) && block.canReplace(start.block)){ points = Placement.upgradeLine(startX, startY, endX, endY); - endRotation = end.rotation; }else{ points = Placement.pathfindLine(block != null && block.conveyorPlacement, startX, startY, endX, endY); } }else{ points = Placement.normalizeLine(startX, startY, endX, endY); } + if(points.size > 1 && end instanceof ChainedBuilding){ + Point2 secondToLast = points.get(points.size - 2); + if (!(world.build(secondToLast.x, secondToLast.y) instanceof ChainedBuilding)){ + endRotation = end.rotation; + } + } if(block != null){ block.changePlacementPath(points, rotation);