Fix placement of gates when pressing shift

This commit is contained in:
Stone_Red
2023-10-12 17:26:10 +02:00
parent 9ce469a403
commit 81b4b01d05
@@ -227,7 +227,12 @@ internal class WorldScreen : SrlsScreen<Grid>
if (selectedLogicGate is not null) 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; selectedLogicGate.WorldData.Position /= srls.Scale;
simulator.AddLogicGate(selectedLogicGate); simulator.AddLogicGate(selectedLogicGate);
@@ -241,13 +246,6 @@ internal class WorldScreen : SrlsScreen<Grid>
UnSelectLogicGate(); 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)) if (keyboardState.IsKeyDown(Keys.C))