1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-01-31 23:49:47 +00:00
Pixelorama/src/UI/Canvas/OnionSkinning.gd
Manolis Papadeas 72aef23cce UI changes to the onion skinning settings
Also changed the ignore text to the "_io" suffix instead of "ignore_onion", because this is quicker to type.
2021-12-01 02:28:12 +02:00

37 lines
1 KiB
GDScript

extends Node2D
enum { PAST, FUTURE }
var type := PAST
var blue_red_color := Color.blue
var rate := Global.onion_skinning_past_rate
func _draw() -> void:
if !Global.onion_skinning:
return
rate = Global.onion_skinning_past_rate if type == PAST else Global.onion_skinning_future_rate
if rate > 0:
var color: Color
if Global.onion_skinning_blue_red:
color = blue_red_color
else:
color = Color.white
for i in range(1, rate + 1):
var change: int = Global.current_project.current_frame
if type == PAST:
change -= i
else:
change += i
if change == clamp(change, 0, Global.current_project.frames.size() - 1):
var layer_i := 0
for cel in Global.current_project.frames[change].cels:
var layer: Layer = Global.current_project.layers[layer_i]
if layer.visible:
# Ignore layer if it has the "_io" suffix in its name (case in-sensitive)
if not (layer.name.to_lower().ends_with("_io")):
color.a = 0.6 / i
draw_texture(cel.image_texture, Vector2.ZERO, color)
layer_i += 1