improvement to drawTextBox to account for newlines.
used drawTextBox in editor palette
This commit is contained in:
parent
266bf10d13
commit
f62ec3ea32
@ -262,9 +262,14 @@ function drawSelectingPaletteTile()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function doEditorPalette()
|
function doEditorPalette()
|
||||||
|
|
||||||
local width = LevelData.tileset:getPixelWidth()/tile_properties.width
|
local width = LevelData.tileset:getPixelWidth()/tile_properties.width
|
||||||
local height = LevelData.tileset:getPixelHeight()/tile_properties.height
|
local height = LevelData.tileset:getPixelHeight()/tile_properties.height
|
||||||
|
local mouse_x = love.mouse.getX()
|
||||||
|
local mouse_y = love.mouse.getY()
|
||||||
|
local hovering = nil
|
||||||
|
local hov_x = nil
|
||||||
|
local hov_y = nil
|
||||||
|
local output = ""
|
||||||
|
|
||||||
love.graphics.setColor(0,0,0,1)
|
love.graphics.setColor(0,0,0,1)
|
||||||
love.graphics.rectangle(
|
love.graphics.rectangle(
|
||||||
@ -274,9 +279,8 @@ function doEditorPalette()
|
|||||||
1 + LevelData.tileset:getPixelWidth() * ((tile_properties.width+1) / tile_properties.width),
|
1 + LevelData.tileset:getPixelWidth() * ((tile_properties.width+1) / tile_properties.width),
|
||||||
1 + LevelData.tileset:getPixelHeight()* ((tile_properties.height+1) / tile_properties.height)
|
1 + LevelData.tileset:getPixelHeight()* ((tile_properties.height+1) / tile_properties.height)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
love.graphics.setColor(1,1,1,1)
|
love.graphics.setColor(1,1,1,1)
|
||||||
|
|
||||||
local position_x = 1
|
local position_x = 1
|
||||||
local position_y = 1
|
local position_y = 1
|
||||||
for i = 1, #TileIndex-width-1 do
|
for i = 1, #TileIndex-width-1 do
|
||||||
@ -293,18 +297,17 @@ function doEditorPalette()
|
|||||||
1,
|
1,
|
||||||
1
|
1
|
||||||
)
|
)
|
||||||
if Keybind:checkDown(Keybind.generic.lclick) then
|
|
||||||
local mouse_x = love.mouse.getX()
|
|
||||||
local mouse_y = love.mouse.getY()
|
|
||||||
|
|
||||||
if mouse_x > (tile_x) * game.scale
|
if mouse_x > (tile_x) * game.scale
|
||||||
and mouse_x < (tile_x + tile_properties.width) * game.scale
|
and mouse_x < (tile_x + tile_properties.width) * game.scale
|
||||||
and mouse_y > (tile_y) * game.scale
|
and mouse_y > (tile_y) * game.scale
|
||||||
and mouse_y < (tile_y + tile_properties.height) * game.scale
|
and mouse_y < (tile_y + tile_properties.height) * game.scale
|
||||||
then
|
then
|
||||||
selecting_tile = position_x + ((position_y-1) * width)
|
hovering = position_x + ((position_y-1) * width)
|
||||||
|
hov_x = tile_x
|
||||||
love.graphics.print(selecting_tile .. " | " .. tile_x .. ", " .. tile_y, 0, 20)
|
hov_y = tile_y
|
||||||
|
if Keybind:checkDown(Keybind.generic.lclick) then
|
||||||
|
selecting_tile = hovering
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -340,6 +343,22 @@ function doEditorPalette()
|
|||||||
1 + LevelData.tileset:getPixelWidth() * ((tile_properties.width+1) / tile_properties.width),
|
1 + LevelData.tileset:getPixelWidth() * ((tile_properties.width+1) / tile_properties.width),
|
||||||
1 + LevelData.tileset:getPixelHeight()* ((tile_properties.height+1) / tile_properties.height)
|
1 + LevelData.tileset:getPixelHeight()* ((tile_properties.height+1) / tile_properties.height)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
local tile = "none"
|
||||||
|
if selecting_tile ~= nil then
|
||||||
|
tile = "#"..selecting_tile
|
||||||
|
end
|
||||||
|
output = output .. "Selected: " .. tile
|
||||||
|
|
||||||
|
if hovering ~= nil then
|
||||||
|
output = output .. " \nHovering: #".. hovering .. "\nImage coords: " .. hov_x .. ", " .. hov_y
|
||||||
|
end
|
||||||
|
|
||||||
|
drawTextBox(
|
||||||
|
output,
|
||||||
|
(palette_scroll_x + 1+width) * (tile_properties.width+1),
|
||||||
|
(palette_scroll_y + 1) * (tile_properties.height+1)
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
11
code/ui.lua
11
code/ui.lua
@ -6,23 +6,30 @@ function addElement(self)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function drawTextBox(text,x,y,color,background_color)
|
function drawTextBox(text,x,y,color,background_color)
|
||||||
|
local color = color or {1,1,1,1}
|
||||||
|
local background_color = background_color or {0,0,0,1}
|
||||||
local c1, c2, c3, a = love.graphics.getColor()
|
local c1, c2, c3, a = love.graphics.getColor()
|
||||||
local width = locale_font:getWidth(text)
|
local width = locale_font:getWidth(text)
|
||||||
local height = locale_font:getHeight(text)
|
local height = locale_font:getHeight(text)
|
||||||
local margin = 5
|
local margin = 5
|
||||||
|
local lines = 1
|
||||||
|
for i in text:gmatch("\n") do
|
||||||
|
lines = lines + 1
|
||||||
|
end
|
||||||
|
|
||||||
love.graphics.setColor(unpack(color))
|
love.graphics.setColor(unpack(color))
|
||||||
love.graphics.rectangle("fill",
|
love.graphics.rectangle("fill",
|
||||||
x-1,
|
x-1,
|
||||||
y-1,
|
y-1,
|
||||||
width+margin*2+2,
|
width+margin*2+2,
|
||||||
height+margin*2+2
|
height*lines+margin*2+2
|
||||||
)
|
)
|
||||||
love.graphics.setColor(unpack(background_color))
|
love.graphics.setColor(unpack(background_color))
|
||||||
love.graphics.rectangle("fill",
|
love.graphics.rectangle("fill",
|
||||||
x,
|
x,
|
||||||
y,
|
y,
|
||||||
width+margin*2,
|
width+margin*2,
|
||||||
height+margin*2
|
height*lines+margin*2
|
||||||
)
|
)
|
||||||
love.graphics.setColor(unpack(color))
|
love.graphics.setColor(unpack(color))
|
||||||
love.graphics.print(text, x+margin, y+margin)
|
love.graphics.print(text, x+margin, y+margin)
|
||||||
|
Loading…
Reference in New Issue
Block a user