Editor canvas modification bugfix, selected tile preview fix

This commit is contained in:
lustlion 2022-01-31 06:44:03 +01:00
parent e1bfd4f7f5
commit bb53c2787b
2 changed files with 18 additions and 8 deletions

View File

@ -90,8 +90,8 @@ end
function EditorDoEdit() function EditorDoEdit()
local mouse_x = love.mouse.getX() local mouse_x = love.mouse.getX()
local mouse_y = love.mouse.getY() local mouse_y = love.mouse.getY()
local horizontal = 1 + math.floor(((mouse_x/game.scale) / tileProperties.width) + (Camera.pos.x / tileProperties.width)) local horizontal = 1+math.floor(((mouse_x/game.scale) / tileProperties.width) + (Camera.pos.x / tileProperties.width))
local vertical = 1 + math.floor(((mouse_y/game.scale) / tileProperties.height) + (Camera.pos.y / tileProperties.height)) local vertical = 1+math.floor(((mouse_y/game.scale) / tileProperties.height) + (Camera.pos.y / tileProperties.height))
local expand_h = 0 local expand_h = 0
local expand_v = 0 local expand_v = 0
local LevelWidth = LevelGetTileWidth() local LevelWidth = LevelGetTileWidth()
@ -151,14 +151,18 @@ end
function DrawSelectingPaletteTile() function DrawSelectingPaletteTile()
if selecting_tile ~= nil and selecting_tile ~= 0 then if selecting_tile ~= nil and selecting_tile ~= 0 then
local mouse_x = tileProperties.width * math.floor((love.mouse.getX()/game.scale) / tileProperties.width) - Camera.pos.x % tileProperties.width local mouse_x = love.mouse.getX()
local mouse_y = tileProperties.height * math.floor((love.mouse.getY()/game.scale) / tileProperties.height) - Camera.pos.y % tileProperties.height local mouse_y = love.mouse.getY()
local horizontal = math.floor(((mouse_x/game.scale) / tileProperties.width) + (Camera.pos.x / tileProperties.width))
local vertical = math.floor(((mouse_y/game.scale) / tileProperties.height) + (Camera.pos.y / tileProperties.height))
local draw_x = tileProperties.width * horizontal - Camera.pos.x
local draw_y = tileProperties.height * vertical - Camera.pos.y
love.graphics.draw( love.graphics.draw(
LevelData.tileset, LevelData.tileset,
TileIndex[selecting_tile], TileIndex[selecting_tile],
mouse_x, draw_x,
mouse_y draw_y
) )
end end
end end

View File

@ -21,6 +21,8 @@ end
function LevelExpandCanvas(horizontal,vertical) function LevelExpandCanvas(horizontal,vertical)
local horizontal = horizontal or 0
local vertical = vertical or 0
local h = LevelGetTileWidth() local h = LevelGetTileWidth()
local v = LevelGetTileHeight() local v = LevelGetTileHeight()
@ -51,7 +53,7 @@ function LevelExpandCanvas(horizontal,vertical)
-- get data from old canvas to new canvas -- get data from old canvas to new canvas
for i = 1, #LevelTiles do for i = 1, #LevelTiles do
for j = 1, #LevelTiles[i] do for j = 1, #LevelTiles[i] do
ExpandedLevel[i+expand_v][j+expand_h] = InstanceTile(LevelTiles[i][j]) ExpandedLevel[i+expand_v][j+expand_h] = InstanceTile(LevelTiles[i][j].id)
end end
end end
@ -61,6 +63,8 @@ end
function LevelReduceCanvas(horizontal,vertical) function LevelReduceCanvas(horizontal,vertical)
local horizontal = horizontal or 0
local vertical = vertical or 0
local h = LevelGetTileWidth() local h = LevelGetTileWidth()
local v = LevelGetTileHeight() local v = LevelGetTileHeight()
@ -91,12 +95,14 @@ function LevelReduceCanvas(horizontal,vertical)
-- get data from old canvas to new canvas -- get data from old canvas to new canvas
for i = 1, #ExpandedLevel do for i = 1, #ExpandedLevel do
for j = 1, #ExpandedLevel[i] do for j = 1, #ExpandedLevel[i] do
ExpandedLevel[i][j] = InstanceTile(LevelTiles[i+expand_v][j+expand_h]) ExpandedLevel[i][j] = InstanceTile(LevelTiles[i+expand_v][j+expand_h].id)
end end
end end
-- use new canvas -- use new canvas
LevelTiles = ExpandedLevel LevelTiles = ExpandedLevel
LevelExpandCanvas()
end end
function LevelGetTileData() function LevelGetTileData()