From 1d96ecb297c9b7940d38a9bb22658207ff56f56c Mon Sep 17 00:00:00 2001 From: Sophie <38859940+Yule42@users.noreply.github.com> Date: Fri, 3 Apr 2026 14:38:27 -0700 Subject: [PATCH 1/2] Change is_paperclip to use a lookup table --- utilities/definitions/paperclips.lua | 5 +++++ utilities/misc_functions.lua | 7 +------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/utilities/definitions/paperclips.lua b/utilities/definitions/paperclips.lua index efd0f114..9a2ff288 100644 --- a/utilities/definitions/paperclips.lua +++ b/utilities/definitions/paperclips.lua @@ -13,6 +13,11 @@ PB_UTIL.ENABLED_PAPERCLIPS = { "platinum_clip" } +PB_UTIL.PAPERCLIP_SET = {} +for _, v in ipairs(PB_UTIL.ENABLED_PAPERCLIPS) do + PB_UTIL.PAPERCLIP_SET["paperback_" .. v] = true +end + if PB_UTIL.config.paperclips_enabled then -- Table to hold all paperclip keys regardless of mod of origin for easy reference PB_UTIL.Paperclips = {} diff --git a/utilities/misc_functions.lua b/utilities/misc_functions.lua index bfc72770..ba07d2fb 100644 --- a/utilities/misc_functions.lua +++ b/utilities/misc_functions.lua @@ -43,12 +43,7 @@ end ---@param str string ---@return boolean function PB_UTIL.is_paperclip(str) - for _, v in ipairs(PB_UTIL.Paperclips or {}) do - if v == str then - return true - end - end - return false + return PB_UTIL.PAPERCLIP_SET[str] == true end ---Checks if a card has a paperclip. If found, the first value returned is the key. From c927bc4376aaa4b321f75deb4cb7af5bd91063fa Mon Sep 17 00:00:00 2001 From: Sophie <38859940+Yule42@users.noreply.github.com> Date: Tue, 19 May 2026 14:00:13 -0700 Subject: [PATCH 2/2] Make paperclip keys loaded at runtime --- utilities/definitions/paperclips.lua | 7 ++----- utilities/misc_functions.lua | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/utilities/definitions/paperclips.lua b/utilities/definitions/paperclips.lua index 9a2ff288..ac175e15 100644 --- a/utilities/definitions/paperclips.lua +++ b/utilities/definitions/paperclips.lua @@ -13,14 +13,10 @@ PB_UTIL.ENABLED_PAPERCLIPS = { "platinum_clip" } -PB_UTIL.PAPERCLIP_SET = {} -for _, v in ipairs(PB_UTIL.ENABLED_PAPERCLIPS) do - PB_UTIL.PAPERCLIP_SET["paperback_" .. v] = true -end - if PB_UTIL.config.paperclips_enabled then -- Table to hold all paperclip keys regardless of mod of origin for easy reference PB_UTIL.Paperclips = {} + PB_UTIL.Paperclips_keys = {} PB_UTIL.Paperclip = SMODS.Sticker:extend { prefix_config = { key = true }, @@ -36,6 +32,7 @@ if PB_UTIL.config.paperclips_enabled then inject = function(self, i) SMODS.Sticker.inject(self, i) + PB_UTIL.Paperclips_keys[self.key] = true table.insert(PB_UTIL.Paperclips, self.key) end, diff --git a/utilities/misc_functions.lua b/utilities/misc_functions.lua index 4456415d..66fa4c97 100644 --- a/utilities/misc_functions.lua +++ b/utilities/misc_functions.lua @@ -43,7 +43,7 @@ end ---@param str string ---@return boolean function PB_UTIL.is_paperclip(str) - return PB_UTIL.PAPERCLIP_SET[str] == true + return PB_UTIL.Paperclips_keys[str] == true end ---Checks if a card has a paperclip. If found, the first value returned is the key.