1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-22 05:23:14 +00:00

Fix onion skinning not working with mirror view

Addresses the 3rd issue in #717.
This commit is contained in:
Emmanouil Papadeas 2022-09-13 00:49:22 +03:00
parent 4b4b0773ff
commit 2e795e8db5

View file

@ -10,20 +10,21 @@ var rate := Global.onion_skinning_past_rate
func _draw() -> void: func _draw() -> void:
if !Global.onion_skinning: if !Global.onion_skinning:
return return
rate = Global.onion_skinning_past_rate if type == PAST else Global.onion_skinning_future_rate rate = Global.onion_skinning_past_rate if type == PAST else Global.onion_skinning_future_rate
if rate > 0: if rate <= 0:
var color: Color return
if Global.onion_skinning_blue_red:
color = blue_red_color var color := blue_red_color if Global.onion_skinning_blue_red else Color.white
else: var position_tmp := position
color = Color.white var scale_tmp := scale
if Global.mirror_view:
position_tmp.x += Global.current_project.size.x
scale_tmp.x = -1
draw_set_transform(position_tmp, rotation, scale_tmp)
for i in range(1, rate + 1): for i in range(1, rate + 1):
var change: int = Global.current_project.current_frame var change: int = Global.current_project.current_frame
if type == PAST: change += i if type == FUTURE else -i
change -= i
else:
change += i
if change == clamp(change, 0, Global.current_project.frames.size() - 1): if change == clamp(change, 0, Global.current_project.frames.size() - 1):
var layer_i := 0 var layer_i := 0
for cel in Global.current_project.frames[change].cels: for cel in Global.current_project.frames[change].cels:
@ -34,3 +35,4 @@ func _draw() -> void:
color.a = 0.6 / i color.a = 0.6 / i
draw_texture(cel.image_texture, Vector2.ZERO, color) draw_texture(cel.image_texture, Vector2.ZERO, color)
layer_i += 1 layer_i += 1
draw_set_transform(position, rotation, scale)