@@ -581,18 +581,24 @@ class ProjectAPI:
581
581
## name [param name], size [param size], fill color [param fill_color] and
582
582
## frames [param frames]. The created project also gets returned.[br][br]
583
583
## [param frames] is an [Array] of type [Frame]. Usually it can be left as [code][][/code].
584
+ ## If [param is_resource] is [code]true[/code] then a [ResourceProject] is created.
584
585
func new_project (
585
586
frames : Array [Frame ] = [],
586
587
name := tr ("untitled" ),
587
588
size := Vector2 (64 , 64 ),
588
- fill_color := Color .TRANSPARENT
589
+ fill_color := Color .TRANSPARENT ,
590
+ is_resource := false
589
591
) -> Project :
590
592
if ! name .is_valid_filename ():
591
593
name = tr ("untitled" )
592
594
if size .x <= 0 or size .y <= 0 :
593
595
size .x = 1
594
596
size .y = 1
595
- var new_proj := Project .new (frames , name , size .floor ())
597
+ var new_proj : Project
598
+ if is_resource :
599
+ new_proj = ResourceProject .new (frames , name , size .floor ())
600
+ else :
601
+ new_proj = Project .new (frames , name , size .floor ())
596
602
new_proj .layers .append (PixelLayer .new (new_proj ))
597
603
new_proj .fill_color = fill_color
598
604
new_proj .frames .append (new_proj .new_empty_frame ())
@@ -617,8 +623,13 @@ class ProjectAPI:
617
623
## Creates and returns a new [Project] in a new tab, with an optional [param name].
618
624
## Unlike [method new_project], no starting frame/layer gets created.
619
625
## Useful if you want to deserialize project data.
620
- func new_empty_project (name := tr ("untitled" )) -> Project :
621
- var new_proj := Project .new ([], name )
626
+ ## If [param is_resource] is [code]true[/code] then a [ResourceProject] is created.
627
+ func new_empty_project (name := tr ("untitled" ), is_resource := false ) -> Project :
628
+ var new_proj : Project
629
+ if is_resource :
630
+ new_proj = ResourceProject .new ([], name )
631
+ else :
632
+ new_proj = Project .new ([], name )
622
633
Global .projects .append (new_proj )
623
634
return new_proj
624
635
@@ -868,11 +879,13 @@ class SignalsAPI:
868
879
signal_class : Signal , callable : Callable , is_disconnecting := false
869
880
) -> void :
870
881
if ! is_disconnecting :
871
- signal_class .connect (callable )
872
- ExtensionsApi .add_action ("SignalsAPI" , signal_class .get_name ())
882
+ if not signal_class .is_connected (callable ):
883
+ signal_class .connect (callable )
884
+ ExtensionsApi .add_action ("SignalsAPI" , signal_class .get_name ())
873
885
else :
874
- signal_class .disconnect (callable )
875
- ExtensionsApi .remove_action ("SignalsAPI" , signal_class .get_name ())
886
+ if signal_class .is_connected (callable ):
887
+ signal_class .disconnect (callable )
888
+ ExtensionsApi .remove_action ("SignalsAPI" , signal_class .get_name ())
876
889
877
890
# APP RELATED SIGNALS
878
891
## Connects/disconnects a signal to [param callable], that emits
0 commit comments