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))