function ScopeHUD.init(o,m)o.Maid=Maid.new()o.LayoutRef=Roact.createRef()o.ContainerSize,o.UpdateContainerSize=Roact.createBinding(UDim2.new(0,0,0,19.0))function o.OnInputBegin(m,c,h)if h then return end if c.UserInputType.Name=="\077\111\117\115\101\077\111\118\101\109\101\110\116"or c.UserInputType.Name=="\084\111\117\099\104"then o:setState({IsHovering=true})end end function o.OnInputEnd(m,c,h)if c.UserInputType.Name=="\077\111\117\115\101\077\111\118\101\109\101\110\116"or c.UserInputType.Name=="\084\111\117\099\104"then o:setState({IsHovering=false})end end function o.SetScopeFromButton(m)o.props.Core.Targeting:SetScope(m)end o:UpdateTargetingState()o:setState({IsHovering=false;IsToolModeEnabled=o.props.Core.Mode=="\084\111\111\108"})end
--- Creates callbacks and sets up initial state.
function ScopeHUD:init(props)
	self.Maid = Maid.new()
	self.LayoutRef = Roact.createRef()
	self.ContainerSize, self.UpdateContainerSize = Roact.createBinding(UDim2.new(0, 0, 0, 38 / 2))

	--- Processes input, listens for hover start
	function self.OnInputBegin(rbx, Input, WasProcessed)
		if WasProcessed then
			return
		end

		-- Set hovering state
		if (Input.UserInputType.Name == "MouseMovement") or (Input.UserInputType.Name == "Touch") then
			self:setState({
				IsHovering = true,
			})
		end
	end

	--- Processes input, listens for hover end
	function self.OnInputEnd(rbx, Input, WasProcessed)
		if (Input.UserInputType.Name == "MouseMovement") or (Input.UserInputType.Name == "Touch") then
			self:setState({
				IsHovering = false,
			})
		end
	end

	--- Processes requests from buttons to set scope
	function self.SetScopeFromButton(NewScope)
		self.props.Core.Targeting:SetScope(NewScope)
	end

	-- Set initial state
	self:UpdateTargetingState()
	self:setState({
		IsHovering = false,
		IsToolModeEnabled = (self.props.Core.Mode == "Tool"),
	})
end
