function Mouse.new()local o=setmetatable({},Mouse)o._trove=Trove.new()o.LeftDown=o._trove:Construct(Signal)o.LeftUp=o._trove:Construct(Signal)o.RightDown=o._trove:Construct(Signal)o.RightUp=o._trove:Construct(Signal)o.Scrolled=o._trove:Construct(Signal)o._trove:Connect(UserInputService.InputBegan,function(m,U)if U then return end if m.UserInputType==Enum.UserInputType.MouseButton1 then o.LeftDown:Fire()elseif m.UserInputType==Enum.UserInputType.MouseButton2 then o.RightDown:Fire()end end)o._trove:Connect(UserInputService.InputEnded,function(m,U)if U then return end if m.UserInputType==Enum.UserInputType.MouseButton1 then o.LeftUp:Fire()elseif m.UserInputType==Enum.UserInputType.MouseButton2 then o.RightUp:Fire()end end)o._trove:Connect(UserInputService.InputChanged,function(m,U)if U then return end if m.UserInputType==Enum.UserInputType.MouseWheel then o.Scrolled:Fire(m.Position.Z)end end)return o end
--[=[
	@return Mouse

	Constructs a new mouse input capturer.

	```lua
	local mouse = Mouse.new()
	```
]=]
function Mouse.new()
	local self = setmetatable({}, Mouse)

	self._trove = Trove.new()

	self.LeftDown = self._trove:Construct(Signal)
	self.LeftUp = self._trove:Construct(Signal)
	self.RightDown = self._trove:Construct(Signal)
	self.RightUp = self._trove:Construct(Signal)
	self.Scrolled = self._trove:Construct(Signal)

	self._trove:Connect(UserInputService.InputBegan, function(input, processed)
		if processed then
			return
		end
		if input.UserInputType == Enum.UserInputType.MouseButton1 then
			self.LeftDown:Fire()
		elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
			self.RightDown:Fire()
		end
	end)

	self._trove:Connect(UserInputService.InputEnded, function(input, processed)
		if processed then
			return
		end
		if input.UserInputType == Enum.UserInputType.MouseButton1 then
			self.LeftUp:Fire()
		elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
			self.RightUp:Fire()
		end
	end)

	self._trove:Connect(UserInputService.InputChanged, function(input, processed)
		if processed then
			return
		end
		if input.UserInputType == Enum.UserInputType.MouseWheel then
			self.Scrolled:Fire(input.Position.Z)
		end
	end)

	return self
end
