From bda232e3375a2417222a3aa98813c8b64df86b6a Mon Sep 17 00:00:00 2001 From: unittensor Date: Wed, 20 Mar 2024 14:41:37 -0400 Subject: [PATCH] work on enum system --- src/server/main/Elevators/Buttons.lua | 1 - src/shared/Enum.lua | 15 ++++++--------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/server/main/Elevators/Buttons.lua b/src/server/main/Elevators/Buttons.lua index e8fdf1b..01a79e3 100644 --- a/src/server/main/Elevators/Buttons.lua +++ b/src/server/main/Elevators/Buttons.lua @@ -144,7 +144,6 @@ function ButtonsModule:CreatePromptButtons() warn(`{self.Model}: Door tag was present but couldnt specify its type for use "{TagName}"`) end }) - print(`{self.Model}: created a ProximityPrompt @ "{Inst:GetFullName()}"`) end diff --git a/src/shared/Enum.lua b/src/shared/Enum.lua index c53e91c..650c8cd 100644 --- a/src/shared/Enum.lua +++ b/src/shared/Enum.lua @@ -53,22 +53,19 @@ CustomEnum.Enums = setmetatable({}, EnumMeta) local function EnumMethods(Enum) --Branch these out later function Enum:Match(Result: string, MatchList: MatchList_f): MatchResult - local Return: MatchResult = nil + local LastIndexName, LastIndexValue = next(MatchList) for MatchEnumName: string, EnumFunc in MatchList do if MatchEnumName == Result then - Return = type(EnumFunc) == "function" and EnumFunc() or EnumFunc - break + return type(EnumFunc) == "function" and EnumFunc() or EnumFunc + elseif MatchEnumName == LastIndexName and LastIndexValue ~= nil and MatchList['_'] then + return type(MatchList['_']) == "function" and MatchList['_']() or MatchList['_'] end end - if Return ~= nil and MatchList["_"] then - Return = MatchList["_"]() - end - return Return + return nil end - function Enum:MatchThread(Result: string, MatchList: MatchList_f): (boolean, MatchResult) - task.synchronize() + function Enum:MatchOnThread(Result: string, MatchList: MatchList_f): (boolean, MatchResult) return coroutine.resume(coroutine.create(function() return self:Match(Result, MatchList) end))