diff options
Diffstat (limited to 'textTrigger.lua')
| -rw-r--r-- | textTrigger.lua | 55 |
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 |
