From 5adb262b178f97c683a430cc9f43b22ab2608817 Mon Sep 17 00:00:00 2001 From: the-Astra Date: Thu, 16 Apr 2026 22:47:57 -0400 Subject: [PATCH 1/4] Create buttons.toml --- lovely/buttons.toml | 86 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 lovely/buttons.toml diff --git a/lovely/buttons.toml b/lovely/buttons.toml new file mode 100644 index 000000000..a6a7640f0 --- /dev/null +++ b/lovely/buttons.toml @@ -0,0 +1,86 @@ +[manifest] +version = "1.0.0" +dump_lua = true +priority = -10 + +# Buy and Use in shop config +[[patches]] +[patches.pattern] +target = 'functions/UI_definitions.lua' +pattern = ''' +if card.ability.consumeable then --and card:can_use_consumeable(true, true) +''' +position = 'at' +payload = ''' +if card.ability.consumeable --and card:can_use_consumeable(true, true) + and (not card.config.center.button_config or card.config.center.button_config.buy_and_use ~= false) + and (not SMODS.ConsumableTypes[card.ability.set] or not SMODS.ConsumableTypes[card.ability.set].button_config or SMODS.ConsumableTypes[card.ability.set].button_config.buy_and_use ~= false ) then +''' +match_indent = true + +# Use and Sell Config +[[patches]] +[patches.pattern] +target = "functions/UI_definitions.lua" +pattern = ''' +local t = { + n=G.UIT.ROOT, config = {padding = 0, colour = G.C.CLEAR}, nodes={ + {n=G.UIT.C, config={padding = 0.15, align = 'cl'}, nodes={ + {n=G.UIT.R, config={align = 'cl'}, nodes={ + sell + }}, + {n=G.UIT.R, config={align = 'cl'}, nodes={ + use + }}, + }}, +}} +''' +position = "before" +payload = ''' +if (card.config.center.button_config and type(card.config.center.button_config) == 'table') + or (SMODS.ConsumableTypes[card.ability.set] and SMODS.ConsumableTypes[card.ability.set].button_config and type(SMODS.ConsumableTypes[card.ability.set].button_config) == 'table') then + local button_config = card.config.center.button_config or SMODS.ConsumableTypes[card.ability.set].button_config + print(button_config) + return { + n=G.UIT.ROOT, config = {padding = 0, colour = G.C.CLEAR}, nodes={ + {n=G.UIT.C, config={padding = 0.15, align = 'cl'}, nodes={ + button_config.sell ~= false and {n=G.UIT.R, config={align = 'cl'}, nodes={ + sell + }} or nil, + button_config.use ~= false and {n=G.UIT.R, config={align = 'cl'}, nodes={ + use + }} or nil, + }}, + }} +end +''' +match_indent = true + +# Controller support +[[patches]] +[patches.pattern] +target = 'functions/UI_definitions.lua' +pattern = ''' +return base_background +''' +position = 'before' +payload = ''' +if (card.config.center.button_config and type(card.config.center.button_config) == 'table') + or (SMODS.ConsumableTypes[card.ability.set] and SMODS.ConsumableTypes[card.ability.set].button_config and type(SMODS.ConsumableTypes[card.ability.set].button_config) == 'table') then + local button_config = card.config.center.button_config or SMODS.ConsumableTypes[card.ability.set].button_config + print(button_config) + + for k, v in button_config do + if not v and base_attach.children[k] then + base_attach.children[k] = nil + end + end + + base_attach.children.buy = G.UIDEF.card_focus_button{ + card = card, parent = base_attach, type = 'buy', + func = 'can_buy', button = 'buy_from_shop', card_width = card_width, buy_and_use = buy_and_use + } +end + +''' +match_indent = true \ No newline at end of file From de3b7e55c7327612ff87c24948a941ef1da71ecd Mon Sep 17 00:00:00 2001 From: the-Astra <75325082+the-Astra@users.noreply.github.com> Date: Sat, 18 Apr 2026 16:20:34 -0400 Subject: [PATCH 2/4] Remove debug prints --- lovely/buttons.toml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lovely/buttons.toml b/lovely/buttons.toml index a6a7640f0..9fb743a7c 100644 --- a/lovely/buttons.toml +++ b/lovely/buttons.toml @@ -39,8 +39,8 @@ position = "before" payload = ''' if (card.config.center.button_config and type(card.config.center.button_config) == 'table') or (SMODS.ConsumableTypes[card.ability.set] and SMODS.ConsumableTypes[card.ability.set].button_config and type(SMODS.ConsumableTypes[card.ability.set].button_config) == 'table') then + local button_config = card.config.center.button_config or SMODS.ConsumableTypes[card.ability.set].button_config - print(button_config) return { n=G.UIT.ROOT, config = {padding = 0, colour = G.C.CLEAR}, nodes={ {n=G.UIT.C, config={padding = 0.15, align = 'cl'}, nodes={ @@ -68,7 +68,6 @@ payload = ''' if (card.config.center.button_config and type(card.config.center.button_config) == 'table') or (SMODS.ConsumableTypes[card.ability.set] and SMODS.ConsumableTypes[card.ability.set].button_config and type(SMODS.ConsumableTypes[card.ability.set].button_config) == 'table') then local button_config = card.config.center.button_config or SMODS.ConsumableTypes[card.ability.set].button_config - print(button_config) for k, v in button_config do if not v and base_attach.children[k] then From 606c29a990555f33fc0ac74a188c0059bf7d93f3 Mon Sep 17 00:00:00 2001 From: the-Astra <75325082+the-Astra@users.noreply.github.com> Date: Sun, 19 Apr 2026 00:27:03 -0400 Subject: [PATCH 3/4] Missing pairs() --- lovely/buttons.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lovely/buttons.toml b/lovely/buttons.toml index 9fb743a7c..622a82121 100644 --- a/lovely/buttons.toml +++ b/lovely/buttons.toml @@ -69,7 +69,7 @@ if (card.config.center.button_config and type(card.config.center.button_config) or (SMODS.ConsumableTypes[card.ability.set] and SMODS.ConsumableTypes[card.ability.set].button_config and type(SMODS.ConsumableTypes[card.ability.set].button_config) == 'table') then local button_config = card.config.center.button_config or SMODS.ConsumableTypes[card.ability.set].button_config - for k, v in button_config do + for k, v in pairs(button_config) do if not v and base_attach.children[k] then base_attach.children[k] = nil end From 517abcd7f049ee8d050f17918ae224ab3c6962cc Mon Sep 17 00:00:00 2001 From: the-Astra <75325082+the-Astra@users.noreply.github.com> Date: Sun, 19 Apr 2026 15:53:00 -0400 Subject: [PATCH 4/4] Check for false, not a falsy value --- lovely/buttons.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lovely/buttons.toml b/lovely/buttons.toml index 622a82121..19c54355d 100644 --- a/lovely/buttons.toml +++ b/lovely/buttons.toml @@ -70,7 +70,7 @@ if (card.config.center.button_config and type(card.config.center.button_config) local button_config = card.config.center.button_config or SMODS.ConsumableTypes[card.ability.set].button_config for k, v in pairs(button_config) do - if not v and base_attach.children[k] then + if v == false and base_attach.children[k] then base_attach.children[k] = nil end end @@ -82,4 +82,4 @@ if (card.config.center.button_config and type(card.config.center.button_config) end ''' -match_indent = true \ No newline at end of file +match_indent = true