Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Trouble with Object Oriented Programming Slider?

Asked by 5 years ago

I'm using OOP to make a Slider but whenever I try to use it in the localscript it say's the start function isn't a thing.

Module

--Slider
--Dev_Pashley

local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")

local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()

local Slider = {}
Slider.__index = Slider

function Slider.new(Frame)
    local slider2 = {}
    setmetatable(Slider, slider2)

    slider2.obj = Frame
    slider2.main = Frame.Slider
    slider2.active = false
    slider2.lastPos = 0


    return slider2
end

function Slider:Update()
    self.main.Slide.Position = UDim2.new(0, (Mouse.X - self.obj.AbsolutePosition.X), 0.5, 0)
    if (self.main.Slide.AbsolutePosition.X < self.obj.AbsolutePosition.X) then
        self.main.Slide.Position = UDim2.new(0, 0, 0.5, 0)
    elseif (self.main.Slide.AbsolutePosition.X + self.main.Slide.AbsoluteSize.X/2 > (self.obj.AbsolutePosition.X + self.obj.AbsoluteSize.X)) then
        self.main.Slide.Position = UDim2.new(1, -self.main.Slide.AbsoluteSize.X, 0.5, 0)
    end
    if (self.active) then
        local scaled = self.main.Slide.Position.X.Offset / self.obj.AbsoluteSize.X
        if (scaled <= 0) then
            if (self.lastPos < 0.5) then
                scaled = 0
            else
                scaled = 1
            end
        end
    end
end

function Slider:Start()
    self.main.Slide.MouseButton1Down:connect(function()
        self.active = true
    end)
    self.main.Slide.MouseButton1Up:connect(function()
        self.active = false
    end)
    UserInputService.InputChanged:connect(function(input, gpe)
        if (gpe) then return end
        if (input.UserInputType == Enum.UserInputType.MouseMovement) then
            if (self.active) then
                self:Update()
            end
        end
    end)
end

return Slider
0
You are assigning Slider (line 10) to slider2 (line 14) w/ setmetatable (line 15) which trashes everything in it previously. pidgey 548 — 5y

Answer this question