mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-02-07 19:09:50 +00:00
Resize indices on project resize
This commit is contained in:
parent
33b76d334f
commit
ca5c6d811e
|
@ -980,14 +980,18 @@ func undo_or_redo(
|
|||
]
|
||||
):
|
||||
if layer_index > -1 and frame_index > -1:
|
||||
canvas.update_texture(layer_index, frame_index, project)
|
||||
var cel := project.frames[frame_index].cels[layer_index]
|
||||
if action_name == "Scale":
|
||||
cel.size_changed(project.size)
|
||||
canvas.update_texture(layer_index, frame_index, project)
|
||||
cel.on_undo_redo(undo)
|
||||
else:
|
||||
for i in project.frames.size():
|
||||
for j in project.layers.size():
|
||||
canvas.update_texture(j, i, project)
|
||||
var cel := project.frames[i].cels[j]
|
||||
if action_name == "Scale":
|
||||
cel.size_changed(project.size)
|
||||
canvas.update_texture(j, i, project)
|
||||
cel.on_undo_redo(undo)
|
||||
|
||||
canvas.selection.queue_redraw()
|
||||
|
@ -995,9 +999,7 @@ func undo_or_redo(
|
|||
for i in project.frames.size():
|
||||
for j in project.layers.size():
|
||||
var current_cel := project.frames[i].cels[j]
|
||||
if current_cel is Cel3D:
|
||||
current_cel.size_changed(project.size)
|
||||
else:
|
||||
if current_cel is not Cel3D:
|
||||
current_cel.image_texture.set_image(current_cel.get_image())
|
||||
canvas.camera_zoom()
|
||||
canvas.grid.queue_redraw()
|
||||
|
|
|
@ -96,6 +96,10 @@ func deserialize(dict: Dictionary) -> void:
|
|||
user_data = dict.get("user_data", user_data)
|
||||
|
||||
|
||||
func size_changed(_new_size: Vector2i) -> void:
|
||||
pass
|
||||
|
||||
|
||||
## Used to perform cleanup after a cel is removed.
|
||||
func on_remove() -> void:
|
||||
pass
|
||||
|
|
|
@ -238,6 +238,13 @@ func update_texture() -> void:
|
|||
super.update_texture()
|
||||
|
||||
|
||||
func size_changed(new_size: Vector2i) -> void:
|
||||
indices_x = ceili(float(new_size.x) / tileset.tile_size.x)
|
||||
indices_y = ceili(float(new_size.y) / tileset.tile_size.y)
|
||||
indices.resize(indices_x * indices_y)
|
||||
re_index_all_tiles()
|
||||
|
||||
|
||||
func on_undo_redo(undo: bool) -> void:
|
||||
update_tileset(undo)
|
||||
|
||||
|
|
Loading…
Reference in a new issue