From 031da7fd0ad3eeb1255d15a6d81fa5c4973aa3a8 Mon Sep 17 00:00:00 2001 From: PeaAshMeter Date: Wed, 19 Nov 2025 00:53:39 +0300 Subject: [PATCH] move UIBuilder creation into the layout --- lib/simple_ui/builder.lua | 11 +++++------ lib/simple_ui/level/test.lua | 35 +++++++++++++++++++---------------- main.lua | 3 +-- 3 files changed, 25 insertions(+), 24 deletions(-) diff --git a/lib/simple_ui/builder.lua b/lib/simple_ui/builder.lua index 096d0d8..748df2e 100644 --- a/lib/simple_ui/builder.lua +++ b/lib/simple_ui/builder.lua @@ -5,13 +5,12 @@ local builder = {} builder.__index = builder -local function new(elementTree) - local l = {} - l.elementTree = elementTree - l._cache = {} +--- @return UIBuilder +local function new(from) + from._cache = {} - setmetatable(l, builder) - return l + setmetatable(from, builder) + return from end --- @param element? UIElement diff --git a/lib/simple_ui/level/test.lua b/lib/simple_ui/level/test.lua index 4dd5237..a941423 100644 --- a/lib/simple_ui/level/test.lua +++ b/lib/simple_ui/level/test.lua @@ -2,23 +2,26 @@ local ScreenArea = require "lib.simple_ui.screen_area" local Center = require "lib.simple_ui.center" local Placeholder = require "lib.simple_ui.placeholder" local Padding = require "lib.simple_ui.padding" +local Builder = require "lib.simple_ui.builder" -return ScreenArea:new { - build = function(self) - return - (love.timer.getTime() / 2) % 2 < 1 and - Center:new { - child = Padding:new { - left = 8, - right = 8, - top = 8, - bottom = 8, - child = Placeholder:new { - key = "const :)", +return Builder { + elementTree = ScreenArea:new { + build = function(self) + return + (love.timer.getTime() / 2) % 2 < 1 and + Center:new { + child = Padding:new { + left = 8, + right = 8, + top = 8, + bottom = 8, + child = Placeholder:new { + key = "const :)", + } } - } - or nil - } - end + or nil + } + end + } } diff --git a/main.lua b/main.lua index a898089..577fcf2 100644 --- a/main.lua +++ b/main.lua @@ -2,8 +2,7 @@ local character = require "lib/character/character" require "lib/tree" -local UIBuilder = require("lib.simple_ui.builder") -local testLayout = UIBuilder(require "lib.simple_ui.level.test") +local testLayout = require("lib.simple_ui.level.test") function love.conf(t) t.console = true