From 03b502299df24384304a9e5ae81dd2c3e4a25264 Mon Sep 17 00:00:00 2001 From: Retrisma <64330958+Retrisma@users.noreply.github.com> Date: Thu, 12 Oct 2023 15:02:18 -0400 Subject: [PATCH] added rich textboxes --- Graphics/Sprites/dialoguebox.png | Bin 0 -> 556 bytes assets.lua | 2 +- camera.lua | 6 +-- main.lua | 21 +++++----- ui.lua | 64 +++++++++++++++++++++++++++++-- 5 files changed, 74 insertions(+), 19 deletions(-) create mode 100644 Graphics/Sprites/dialoguebox.png diff --git a/Graphics/Sprites/dialoguebox.png b/Graphics/Sprites/dialoguebox.png new file mode 100644 index 0000000000000000000000000000000000000000..fafa34af3758bbd8a8349e113a0e757710ed822b GIT binary patch literal 556 zcmeAS@N?(olHy`uVBq!ia0y~yU~&Mm8#tJO5vo%&BXQk self.speed then + self:nextletter() + + self.cooldown = self.cooldown - self.speed + end + end +end + +function Textbox:nextletter() + local char = self.bank:sub(1, 1) + + if char == " " then + local word = self.bank:match("(%w+)(.+)") + local wordsize = fonts["ElixiR"]:getWidth(" " .. (word or "")) + + if self.pixels + wordsize > self.width - (self.hpad * 2) then + self.text = self.text .. "\n" + self.pixels = 0 + else + self.text = self.text .. char + end + + self.bank = self.bank:sub(2) + self.pixels = self.pixels + wordsize + else + self.text = self.text .. char self.bank = self.bank:sub(2) end end function Textbox:draw() - love.graphics.print(self.text, self.x, self.y, 0) + local textpos = { + x = self.x + (self.hpad or 0), + y = self.y + (self.vpad or 0) + } + + if self.font then love.graphics.setFont(self.font) end + + if self.image then + love.graphics.draw(self.image, self.x, self.y) + end + if self.shadow then + love.graphics.setColor(self.shadow) + love.graphics.print(self.text, textpos.x + 1, textpos.y + 1, 0) + love.graphics.setColor(1, 1, 1, 1) + end + love.graphics.print(self.text, textpos.x, textpos.y, 0) end \ No newline at end of file