- [NEW] Ja es poden crear items i es guarden

- [NEW] Ja es pot modificar el flip dels items
- [NEW] si tenim un item pa pintar, amb F fem flip abans de soltar-lo
- [NEW] gestió correcta dels items de cada habitació
- [FIX] Ja es carreguen els items de la primer habitació
This commit is contained in:
2025-11-15 09:34:02 +01:00
parent 8dc76e1382
commit cd27490426
5 changed files with 38 additions and 4 deletions

View File

@@ -10,6 +10,8 @@ editor = {
ants=0xc936,
modified = false,
item_selected=nil,
item_hovered=nil,
flip=false,
enable = function()
app.update = editor.update
@@ -77,6 +79,8 @@ editor = {
map.surf(rooms.surf_items)
--print(editor.item_selected)
map.tile(tx,ty,editor.item_selected)
local room = tx + ty * 8
table.insert(sprites.list, templates.create(items[editor.item_selected].name, {pos={x=tx*8, y=ty*8},flipped=editor.flip, room=room}))
editor.modified = true
--surf.target(0)
end
@@ -86,7 +90,7 @@ editor = {
end
if editor.item_selected then
local k = items[editor.item_selected]
draw.surf(k.visual.x, k.visual.y, k.visual.w, k.visual.h, mx, my)
draw.surf(k.visual.x, k.visual.y, k.visual.w, k.visual.h, mx, my, k.visual.w, k.visual.h, editor.flip)
end
end
end
@@ -99,12 +103,20 @@ editor = {
editor.quit()
elseif key.press(key.RIGHT) and rooms.pos.x < 20*7 then
rooms.pos.x = rooms.pos.x + 20
sprites.remove_out_of_room()
sprites.add_from_room(rooms.pos.x, rooms.pos.y)
elseif key.press(key.LEFT) and rooms.pos.x > 0 then
rooms.pos.x = rooms.pos.x - 20
sprites.remove_out_of_room()
sprites.add_from_room(rooms.pos.x, rooms.pos.y)
elseif key.press(key.DOWN) and rooms.pos.y < 12*7 then
rooms.pos.y = rooms.pos.y + 12
sprites.remove_out_of_room()
sprites.add_from_room(rooms.pos.x, rooms.pos.y)
elseif key.press(key.UP) and rooms.pos.y > 0 then
rooms.pos.y = rooms.pos.y - 12
sprites.remove_out_of_room()
sprites.add_from_room(rooms.pos.x, rooms.pos.y)
elseif key.press(key.TAB) or key.press(key.ESCAPE) then
if editor.layer==LAYER_BACKGROUND or editor.layer==LAYER_FOREGROUND then
editor.tilepicker.show()
@@ -119,6 +131,22 @@ editor = {
elseif key.press(key.F11) then
reload_textures()
end
if editor.layer==LAYER_ITEMS then
if key.press(key.F) then
if editor.item_selected then
editor.flip = not editor.flip
elseif editor.item_hovered then
local sprite = sprites.list[editor.item_hovered]
sprite.flipped = not sprite.flipped
map.surf(rooms.surf_items)
local tile = map.tile(sprite.pos.x//8, sprite.pos.y//8)
if tile > 0x7f then tile = tile & 0x7f else tile = tile | 0x80 end
map.tile(sprite.pos.x//8, sprite.pos.y//8, tile)
editor.modified = true
end
end
end
end,
create_stamp=function()