From 81b4b01d05cd22cf82b93d9509637801841e4f25 Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Thu, 12 Oct 2023 17:26:10 +0200 Subject: [PATCH] Fix placement of gates when pressing shift --- .../UserInterface/Screens/WorldScreen.cs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/StoneRed.LogicSimulator/UserInterface/Screens/WorldScreen.cs b/StoneRed.LogicSimulator/UserInterface/Screens/WorldScreen.cs index 17357a5..c894d3d 100644 --- a/StoneRed.LogicSimulator/UserInterface/Screens/WorldScreen.cs +++ b/StoneRed.LogicSimulator/UserInterface/Screens/WorldScreen.cs @@ -227,7 +227,12 @@ internal class WorldScreen : SrlsScreen if (selectedLogicGate is not null) { - if (mouseState.IsButtonDown(MouseButton.Left) && !mouseOverGate && !srls.Desktop.IsMouseOverGUI) + Vector2 position = camera.ScreenToWorld(mouseState.Position.ToVector2()); + position = new Vector2(position.X - RealMod(position.X, 100 * srls.Scale), position.Y - RealMod(position.Y, 100 * srls.Scale)); + + selectedLogicGate.WorldData.Position = position; + + if (mouseState.WasButtonJustDown(MouseButton.Left) && !mouseOverGate && !srls.Desktop.IsMouseOverGUI) { selectedLogicGate.WorldData.Position /= srls.Scale; simulator.AddLogicGate(selectedLogicGate); @@ -241,13 +246,6 @@ internal class WorldScreen : SrlsScreen UnSelectLogicGate(); } } - else - { - Vector2 position = camera.ScreenToWorld(mouseState.Position.ToVector2()); - position = new Vector2(position.X - RealMod(position.X, 100 * srls.Scale), position.Y - RealMod(position.Y, 100 * srls.Scale)); - - selectedLogicGate.WorldData.Position = position; - } } if (keyboardState.IsKeyDown(Keys.C))