|
5 | 5 | * file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
6 | 6 | */
|
7 | 7 |
|
8 |
| -use godot::builtin::{dict, Color, Dictionary, GString, StringName, Variant, VariantType}; |
9 |
| -use godot::classes::{Area2D, INode, IRefCounted, Node, Object, RefCounted, Resource, Texture}; |
| 8 | +use godot::builtin::{dict, Color, Dictionary, GString, Variant, VariantType}; |
| 9 | +use godot::classes::{INode, IRefCounted, Node, Object, RefCounted, Resource, Texture}; |
10 | 10 | use godot::global::{PropertyHint, PropertyUsageFlags};
|
11 | 11 | use godot::meta::{GodotConvert, PropertyHintInfo, ToGodot};
|
12 | 12 | use godot::obj::{Base, EngineBitfield, EngineEnum, Gd, NewAlloc, NewGd, OnEditor};
|
@@ -541,63 +541,40 @@ fn test_var_with_renamed_funcs() {
|
541 | 541 | #[derive(GodotClass)]
|
542 | 542 | #[class(init, base=Node)]
|
543 | 543 | struct SomeDuplicator {
|
544 |
| - #[var] |
| 544 | + #[export(storage)] |
545 | 545 | int_val: i32,
|
546 | 546 |
|
547 |
| - #[var] |
| 547 | + #[export(storage)] |
548 | 548 | optional_node: Option<Gd<Node>>,
|
549 | 549 |
|
550 |
| - #[export] |
| 550 | + #[export(storage)] |
551 | 551 | oneditor_node: OnEditor<Gd<Node>>,
|
552 |
| - |
553 |
| - #[export] |
554 |
| - oneditor_area: OnEditor<Gd<Area2D>>, |
555 | 552 | }
|
556 | 553 |
|
557 | 554 | #[itest]
|
558 | 555 | fn test_some_duplicator() {
|
559 |
| - let mut obj = SomeDuplicator::new_alloc(); |
560 |
| - obj.bind_mut().int_val = 5; |
561 |
| - |
562 |
| - let some_node = Node::new_alloc(); |
563 |
| - obj.bind_mut().optional_node = Some(some_node.clone()); |
| 556 | + let mut original = SomeDuplicator::new_alloc(); |
| 557 | + original.bind_mut().int_val = 5; |
564 | 558 |
|
565 |
| - let mut editor_node = Node::new_alloc(); |
566 |
| - editor_node.set_name("test"); |
567 |
| - obj.bind_mut().oneditor_node.init(editor_node); |
| 559 | + let node_in_option = Node::new_alloc(); |
| 560 | + original.bind_mut().optional_node = Some(node_in_option.clone()); |
568 | 561 |
|
569 |
| - let mut some_area = Area2D::new_alloc(); |
570 |
| - some_area.set_collision_layer(1); |
571 |
| - some_area.set_collision_mask(1); |
572 |
| - obj.bind_mut().oneditor_area.init(some_area); |
573 |
| - assert_eq!(obj.bind().oneditor_area.get_collision_layer(), 1); |
574 |
| - assert_eq!(obj.bind().oneditor_area.get_collision_mask(), 1); |
575 |
| - |
576 |
| - let duplicated_obj = obj.duplicate(); |
577 |
| - let duplicated_obj: Gd<SomeDuplicator> = duplicated_obj.unwrap().cast(); |
| 562 | + let node_in_editor = Node::new_alloc(); |
| 563 | + original |
| 564 | + .bind_mut() |
| 565 | + .oneditor_node |
| 566 | + .init(node_in_editor.clone()); |
578 | 567 |
|
| 568 | + let duplicated: Gd<SomeDuplicator> = original.duplicate().unwrap().cast(); |
579 | 569 | {
|
580 |
| - let duplicated = duplicated_obj.bind(); |
| 570 | + let duplicated = duplicated.bind(); |
581 | 571 | assert_eq!(duplicated.int_val, 5);
|
582 |
| - assert_eq!( |
583 |
| - duplicated.optional_node.as_ref().unwrap().instance_id(), |
584 |
| - some_node.instance_id() |
585 |
| - ); |
586 |
| - assert_eq!( |
587 |
| - duplicated.optional_node.as_ref().unwrap().get_name(), |
588 |
| - StringName::from("renamed") |
589 |
| - ); |
590 |
| - |
591 |
| - assert_eq!( |
592 |
| - duplicated.oneditor_node.get_name(), |
593 |
| - StringName::from("test") |
594 |
| - ); |
595 |
| - |
596 |
| - assert_eq!(duplicated.oneditor_area.get_collision_layer(), 1); |
597 |
| - assert_eq!(duplicated.oneditor_area.get_collision_mask(), 1); |
| 572 | + assert_eq!(duplicated.optional_node.as_ref().unwrap(), &node_in_option); |
| 573 | + assert_eq!(&*duplicated.oneditor_node, &node_in_editor); |
598 | 574 | }
|
599 | 575 |
|
600 |
| - some_node.free(); |
601 |
| - duplicated_obj.free(); |
602 |
| - obj.free(); |
| 576 | + node_in_option.free(); |
| 577 | + node_in_editor.free(); |
| 578 | + duplicated.free(); |
| 579 | + original.free(); |
603 | 580 | }
|
0 commit comments