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#tJO
5vo%&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