-- Compiled with roblox-ts v3.0.0 local TS = _G[script] local BaseStandardAction = TS.import(script, script.Parent, "standard-action").BaseStandardAction local UniqueAction do local super = BaseStandardAction UniqueAction = setmetatable({}, { __tostring = function() return "UniqueAction" end, __index = super, }) UniqueAction.__index = UniqueAction function UniqueAction:constructor(...) local actions = { ... } super.constructor(self) self.actions = {} self.actions = actions end function UniqueAction:handleInput(input, processed) local isPress = input.UserInputState == Enum.UserInputState.Begin for _, action in self.actions do action:handleInput(input, processed, isPress) end local _exp = self.actions -- ▼ ReadonlyArray.filter ▼ local _newValue = {} local _callback = function(action) return action.isActive end local _length = 0 for _k, _v in _exp do if _callback(_v, _k - 1, _exp) == true then _length += 1 _newValue[_length] = _v end end -- ▲ ReadonlyArray.filter ▲ local activeActions = _newValue if #activeActions == 0 or (isPress and #activeActions ~= 1) then return self:deactivate() end self:activate() end end local UniqueActionBuilder do local super = UniqueAction UniqueActionBuilder = setmetatable({}, { __tostring = function() return "UniqueActionBuilder" end, __index = super, }) UniqueActionBuilder.__index = UniqueActionBuilder function UniqueActionBuilder.new(...) local self = setmetatable({}, UniqueActionBuilder) return self:constructor(...) or self end function UniqueActionBuilder:constructor(...) super.constructor(self, ...) end function UniqueActionBuilder:setID(id) self.id = id return self end function UniqueActionBuilder:setProcessed(processed) self.processed = processed return self end end return { UniqueAction = UniqueAction, UniqueActionBuilder = UniqueActionBuilder, }