Made a Frame class, no longer use multiple Canvases for multiple frames

The Canvas is now single node, instead of having multiple canvases for each frame. This should also be a performance optimization, since there are less canvas nodes, so there are less _input() calls. It should also fix a rare Undo/Redo issue with motion drawing and making lines. Could be unstable, needs more testing.

As a side effect, the guides are now the same for all frames, so this should also close #246.
This commit is contained in:
OverloadedOrama 2020-06-03 02:14:24 +03:00
parent d8136a3e17
commit 54b628f6cb
17 changed files with 412 additions and 459 deletions

9
src/Classes/Frame.gd Normal file
View file

@ -0,0 +1,9 @@
class_name Frame extends Reference
# A class for frame properties.
# A frame is a collection of cels, for each layer.
var cels : Array # An array of Cels
func _init(_cels := []) -> void:
cels = _cels