more work on editor and selecting tiles, not done yet tho
This commit is contained in:
parent
2b323fff8f
commit
15e8142c4c
|
@ -4,78 +4,112 @@ function EditorStep()
|
|||
if Keybind:HasPressed(Keybind.editor.palette) then
|
||||
if palette then
|
||||
palette = false
|
||||
palette_scroll_x = nil
|
||||
palette_scroll_y = nil
|
||||
else
|
||||
palette = true
|
||||
palette_scroll_x = 0
|
||||
palette_scroll_y = 0
|
||||
selecting_tile = 51
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function EditorScroll(y)
|
||||
if palette then
|
||||
if love.keyboard.isDown("lshift") then
|
||||
palette_scroll_y = palette_scroll_y + y
|
||||
else
|
||||
palette_scroll_x = palette_scroll_x + y
|
||||
end
|
||||
else
|
||||
local oscale = game.scale
|
||||
game.scale = math.max(0.1,game.scale + y/16)
|
||||
end
|
||||
end
|
||||
|
||||
function EditorDraw()
|
||||
GameworldDraw()
|
||||
if palette then
|
||||
EditorDrawPalette()
|
||||
EditorDoPalette()
|
||||
end
|
||||
end
|
||||
|
||||
function EditorDrawPalette()
|
||||
local width = LevelData.tileset:getPixelWidth()/tileProperties.width
|
||||
function EditorDoPalette()
|
||||
|
||||
local width = LevelData.tileset:getPixelWidth()/tileProperties.width
|
||||
local height = LevelData.tileset:getPixelHeight()/tileProperties.height
|
||||
|
||||
local position_x = 1
|
||||
local position_y = 1
|
||||
for i = 1, #TileIndex-width-1 do
|
||||
love.graphics.setColor(0,0,0,1)
|
||||
love.graphics.rectangle(
|
||||
"fill",
|
||||
(palette_scroll_x + 1) * (tileProperties.width+1),
|
||||
(palette_scroll_y + 1) * (tileProperties.height+1),
|
||||
1 + LevelData.tileset:getPixelWidth() * ((tileProperties.width+1) / tileProperties.width),
|
||||
1 + LevelData.tileset:getPixelHeight()* ((tileProperties.height+1) / tileProperties.height)
|
||||
)
|
||||
|
||||
love.graphics.draw(
|
||||
LevelData.tileset,
|
||||
TileIndex[i],
|
||||
position_x * tileProperties.width*2,
|
||||
(--[[p_scroll +]]position_y) * tileProperties.height*2,
|
||||
0,
|
||||
2,
|
||||
2
|
||||
)
|
||||
position_x = position_x + 1
|
||||
|
||||
if position_x > width then
|
||||
position_x = position_x - width
|
||||
position_y = position_y + 1
|
||||
end
|
||||
love.graphics.setColor(1,1,1,1)
|
||||
local position_x = 1
|
||||
local position_y = 1
|
||||
for i = 1, #TileIndex-width-1 do
|
||||
|
||||
local tile_x = (palette_scroll_x + position_x) * (tileProperties.width+1)
|
||||
local tile_y = (palette_scroll_y + position_y) * (tileProperties.height+1)
|
||||
|
||||
love.graphics.draw(
|
||||
LevelData.tileset,
|
||||
TileIndex[i],
|
||||
tile_x,
|
||||
tile_y,
|
||||
0,
|
||||
1,
|
||||
1
|
||||
)
|
||||
if love.mouse.isDown(1) then
|
||||
local mouse_x = love.mouse.getX()
|
||||
local mouse_y = love.mouse.getY()
|
||||
|
||||
if mouse_x > tile_x
|
||||
and mouse_x < tile_x + tileProperties.width + 1
|
||||
and mouse_y > tile_y
|
||||
and mouse_y < tile_y + tileProperties.height + 1
|
||||
then
|
||||
selecting_tile = position_x + (position_y * width)
|
||||
|
||||
love.graphics.print(selecting_tile .. " | " .. tile_x .. ", " .. tile_y)
|
||||
end
|
||||
else
|
||||
selecting_tile = 0
|
||||
end
|
||||
|
||||
if selecting_tile ~= nil and i == selecting_tile then
|
||||
love.graphics.setColor(1,0,1,1)
|
||||
love.graphics.rectangle(
|
||||
"line",
|
||||
tile_x,
|
||||
tile_y,
|
||||
tileProperties.width,
|
||||
tileProperties.height
|
||||
)
|
||||
love.graphics.setColor(1,1,1,1)
|
||||
end
|
||||
|
||||
position_x = position_x + 1
|
||||
|
||||
if position_x > width then
|
||||
position_x = position_x - width
|
||||
position_y = position_y + 1
|
||||
end
|
||||
end
|
||||
|
||||
love.graphics.rectangle(
|
||||
"line",
|
||||
tileProperties.width*2,
|
||||
(--[[p_scroll +]] 1) * tileProperties.height*2,
|
||||
2*LevelData.tileset:getPixelWidth(),
|
||||
2*LevelData.tileset:getPixelHeight()
|
||||
|
||||
love.graphics.rectangle(
|
||||
"line",
|
||||
(palette_scroll_x + 1) * (tileProperties.width+1),
|
||||
(palette_scroll_y + 1) * (tileProperties.height+1),
|
||||
1 + LevelData.tileset:getPixelWidth() * ((tileProperties.width+1) / tileProperties.width),
|
||||
1 + LevelData.tileset:getPixelHeight()* ((tileProperties.height+1) / tileProperties.height)
|
||||
)
|
||||
end
|
||||
--[[
|
||||
function DrawSelectingPaletteTile()
|
||||
if selecting_tile ~= nil then
|
||||
local width = TileProperties.tileset:getPixelWidth()/TileProperties.width
|
||||
local height = TileProperties.tileset:getPixelHeight()/TileProperties.height
|
||||
|
||||
local positionx = 1
|
||||
local positiony = 1
|
||||
|
||||
for i = 1, #Tile-12 do
|
||||
if i == selecting_tile then
|
||||
love.graphics.rectangle(
|
||||
"line",
|
||||
positionx * TileProperties.width*2,
|
||||
(p_scroll + positiony) * TileProperties.height*2,
|
||||
TileProperties.width*2-1,
|
||||
TileProperties.height*2-1
|
||||
)
|
||||
end
|
||||
|
||||
positionx = positionx + 1
|
||||
|
||||
if positionx > width then
|
||||
positionx = positionx - width
|
||||
positiony = positiony + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end]]
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
function GameStep()
|
||||
-- GAME STEP
|
||||
if not do_pause then
|
||||
SetCollisionFlags(main_Player)
|
||||
for _, enty in pairs(LoadedEntities) do
|
||||
|
@ -17,16 +16,16 @@ function GameDraw()
|
|||
GameworldDraw()
|
||||
GameworldLighting()
|
||||
|
||||
-- HUD
|
||||
-- hud
|
||||
textScale = 0.5
|
||||
|
||||
--debug
|
||||
if debug then DebugUI() end
|
||||
if debug_collision then
|
||||
DebugColisions()
|
||||
DebugEntities()
|
||||
end
|
||||
|
||||
-- reset color
|
||||
-- pause
|
||||
if do_pause then PauseUI() end
|
||||
|
||||
-- debug
|
||||
if debug then DebugUI() end
|
||||
if debug_collision then
|
||||
DebugColisions()
|
||||
DebugEntities()
|
||||
end
|
||||
end
|
||||
|
|
|
@ -28,7 +28,6 @@ function GameworldLighting()
|
|||
love.graphics.setCanvas()
|
||||
end
|
||||
|
||||
|
||||
-- work on lighting canvas
|
||||
love.graphics.setCanvas(Canvas.Darkness)
|
||||
SetDarkness()
|
||||
|
|
Loading…
Reference in New Issue