function ScopeHUD.init(n,K)n.Maid=Maid.new()n.LayoutRef=Roact.createRef()n.ContainerSize,n.UpdateContainerSize=Roact.createBinding(UDim2.new(0,0,0,19.0))function n.OnInputBegin(K,B,D)if D then return end if B.UserInputType.Name=="\077\111\117\115\101\077\111\118\101\109\101\110\116"or B.UserInputType.Name=="\084\111\117\099\104"then n:setState({IsHovering=true})end end function n.OnInputEnd(K,B,D)if B.UserInputType.Name=="\077\111\117\115\101\077\111\118\101\109\101\110\116"or B.UserInputType.Name=="\084\111\117\099\104"then n:setState({IsHovering=false})end end function n.SetScopeFromButton(K)n.props.Core.Targeting:SetScope(K)end n:UpdateTargetingState()n:setState({IsHovering=false,IsToolModeEnabled=n.props.Core.Mode=="\084\111\111\108"})end

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
