public override void _PhysicsProcess(float delta) { mouseTile = WorldToMap(GetGlobalMousePosition()); var mouseTilePosition = MapToWorld(mouseTile); mouseArea.Position = mouseTilePosition; if (mouseArea.GetOverlappingAreas().Count + mouseArea.GetOverlappingBodies().Count == 0 && GetCell((int)mouseTile.x, (int)mouseTile.y) == -1 && tilePlacer.materialSupply[materialPlaced] > 0) { mouseArea.SetState(MouseArea.State.Valid, materialPlaced); } else { mouseArea.SetState(MouseArea.State.Invalid, materialPlaced); } }