summaryrefslogtreecommitdiff
path: root/textTrigger.lua
diff options
context:
space:
mode:
authorcursed22bc <admin@pixeldawn.org>2026-03-10 20:52:33 +0200
committercursed22bc <admin@pixeldawn.org>2026-03-10 20:52:33 +0200
commita64d77bc12cadb3989a7faf094adc1d5c581d565 (patch)
tree86bc2a3876c3cd42b86772eaff755549590e57c8 /textTrigger.lua
parent9d95968c3e732be915f10841d1d659e37b3b5d03 (diff)
text triggers
Diffstat (limited to 'textTrigger.lua')
-rw-r--r--textTrigger.lua55
1 files changed, 55 insertions, 0 deletions
diff --git a/textTrigger.lua b/textTrigger.lua
new file mode 100644
index 0000000..5202a8c
--- /dev/null
+++ b/textTrigger.lua
@@ -0,0 +1,55 @@
+local Entity = require("entity")
+
+local TextTrigger = {}
+TextTrigger.__index = TextTrigger
+
+function TextTrigger.new(entity)
+ local self = setmetatable({}, TextTrigger)
+
+ self.x = entity.x
+ self.y = entity.y
+ self.width = entity.width
+ self.height = entity.height
+
+ self.text = entity:get("text", "")
+ self.timesToShow = tonumber(entity:get("times_to_show", 1)) or 1
+
+ self.body = nil
+ self.fixture = nil
+ self.isTextTrigger = true
+
+ return self
+end
+
+function TextTrigger:setWorldPhysics(world)
+ local cx = self.x + self.width / 2
+ local cy = self.y + self.height / 2
+
+ self.body = love.physics.newBody(world, cx, cy, "static")
+ local shape = love.physics.newRectangleShape(self.width, self.height)
+
+ self.fixture = love.physics.newFixture(self.body, shape)
+ self.fixture:setSensor(true)
+ self.fixture:setUserData(self)
+end
+
+function TextTrigger:syncFromPhysicsBody() end
+
+function TextTrigger:trigger(world, player)
+ if self.timesToShow < 1 then return end
+
+ world.playerTextbox:show(
+ self.text,
+ { player.x + player.width/2, player.y - 20, "center" },
+ "write",
+ { life = 3, fontSize = 9, centeredText = true, wrapToFit = true }
+ )
+
+ self.timesToShow = self.timesToShow - 1
+end
+
+function TextTrigger:update(dt) end
+
+function TextTrigger:draw() end
+
+return TextTrigger \ No newline at end of file