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

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

