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