Improve world editor palette workflow
This commit is contained in:
parent
4cb536d6c8
commit
858775fdc8
3 changed files with 336 additions and 67 deletions
25
world.lua
25
world.lua
|
|
@ -187,6 +187,30 @@ function World:drawRoomPreview(name, x, y, size)
|
|||
love.graphics.setScissor()
|
||||
end
|
||||
|
||||
function World:drawHoveredRoomName()
|
||||
local mouseX, mouseY = love.mouse.getPosition()
|
||||
local cellX, cellY = self:getCellFromMousePos(mouseX, mouseY)
|
||||
local name = self:isInBounds(cellX, cellY) and self:roomAt(cellX, cellY)
|
||||
if not name then return end
|
||||
|
||||
local font = love.graphics.getFont()
|
||||
local padding = 6
|
||||
local tooltipW = math.min(font:getWidth(name) + padding * 2, width - 8)
|
||||
local tooltipH = font:getHeight() + padding * 2
|
||||
local tooltipX = math.min(mouseX + 14, width - tooltipW - 4)
|
||||
local tooltipY = math.min(mouseY + 14, height - tooltipH - 4)
|
||||
tooltipX = math.max(4, tooltipX)
|
||||
tooltipY = math.max(4, tooltipY)
|
||||
|
||||
-- Keep the label anchored beside the pointer, while keeping it entirely in
|
||||
-- the playable map rather than allowing it to spill into the editor panel.
|
||||
love.graphics.setColor(0, 0, 0, 0.9)
|
||||
love.graphics.rectangle("fill", tooltipX, tooltipY, tooltipW, tooltipH)
|
||||
love.graphics.setColor(1, 1, 1, 1)
|
||||
love.graphics.rectangle("line", tooltipX, tooltipY, tooltipW, tooltipH)
|
||||
love.graphics.printf(name, tooltipX + padding, tooltipY + padding, tooltipW - padding * 2, "left")
|
||||
end
|
||||
|
||||
function World:draw()
|
||||
local cell = width / self.width
|
||||
love.graphics.setColor(12 / 255, 12 / 255, 20 / 255, 1)
|
||||
|
|
@ -200,4 +224,5 @@ function World:draw()
|
|||
love.graphics.rectangle("line", screenX, screenY, cell, cell)
|
||||
end
|
||||
end
|
||||
self:drawHoveredRoomName()
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue