@@ -6,108 +6,86 @@ using namespace godot;
6
6
7
7
void LOD::_bind_methods () {
8
8
// Inspector properties
9
-
10
- // register_property<LOD, bool>("enabled", &LOD::set_enabled, &LOD::get_enabled, true);
11
9
ClassDB::bind_method (D_METHOD (" get_enabled" ), &LOD::get_enabled);
12
10
ClassDB::bind_method (D_METHOD (" set_enabled" , " p_enabled" ), &LOD::set_enabled);
13
11
ClassDB::add_property (" LOD" , PropertyInfo (Variant::BOOL, " enabled" ), " set_enabled" , " get_enabled" );
14
12
15
13
// Whether to use distance multipliers from project settings
16
- // register_property<LOD, bool>("affectedByDistanceMultipliers", &LOD::set_affected_by_distance, &LOD::get_affected_by_distance, true);
17
14
ClassDB::bind_method (D_METHOD (" get_affected_by_distance_multipliers" ), &LODBaseComponent::get_affected_by_distance_multipliers);
18
15
ClassDB::bind_method (D_METHOD (" set_affected_by_distance_multipliers" , " p_affected_by_distance_multipliers" ), &LODBaseComponent::set_affected_by_distance_multipliers);
19
16
ClassDB::add_property (" LODBaseComponent" , PropertyInfo (Variant::BOOL, " affected_by_distance_multipliers" ), " set_affected_by_distance_multipliers" , " get_affected_by_distance_multipliers" );
20
17
21
18
// Screen percentage ratios (and if applicable)
22
- // register_property<LOD, bool>("use_screen_percentage", &LOD::set_use_screen_percentage, &LOD::get_use_screen_percentage, true);
23
19
ClassDB::bind_method (D_METHOD (" get_use_screen_percentage" ), &LOD::get_use_screen_percentage);
24
20
ClassDB::bind_method (D_METHOD (" set_use_screen_percentage" , " p_use_screen_percentage" ), &LOD::set_use_screen_percentage);
25
21
ClassDB::add_property (" LOD" , PropertyInfo (Variant::BOOL, " use_screen_percentage" ), " set_use_screen_percentage" , " get_use_screen_percentage" );
26
22
27
23
// Vars for distance-based (in metres)
28
24
// These will be set by the ratios if use_screen_percentage is true
29
- // Distance and ratio exposed names and variable names do not match to avoid massive compatability breakage with an older version of the addon.
30
- // register_property<LOD, float>("lod1dist", &LOD::lod1_distance, 7.0f); // put any of these to -1 if you don't have the lod for it, don't want to hide/unload etc
31
25
ClassDB::bind_method (D_METHOD (" get_lod1_distance" ), &LOD::get_enabled);
32
26
ClassDB::bind_method (D_METHOD (" set_lod1_distance" , " p_lod1_distance" ), &LOD::set_lod1_distance);
33
27
ClassDB::add_property (" LOD" , PropertyInfo (Variant::FLOAT, " lod1_distance" ), " set_lod1_distance" , " get_lod1_distance" );
34
- // register_property<LOD, float>("lod2dist", &LOD::lod2_distance, 12.0f);
28
+
35
29
ClassDB::bind_method (D_METHOD (" get_lod2_distance" ), &LOD::get_enabled);
36
30
ClassDB::bind_method (D_METHOD (" set_lod2_distance" , " p_lod2_distance" ), &LOD::set_lod2_distance);
37
31
ClassDB::add_property (" LOD" , PropertyInfo (Variant::FLOAT, " lod2_distance" ), " set_lod2_distance" , " get_lod2_distance" );
38
- // register_property<LOD, float>("lod3dist", &LOD::lod3_distance, 30.0f);
32
+
39
33
ClassDB::bind_method (D_METHOD (" get_lod3_distance" ), &LOD::get_enabled);
40
34
ClassDB::bind_method (D_METHOD (" set_lod3_distance" , " p_lod3_distance" ), &LOD::set_lod3_distance);
41
35
ClassDB::add_property (" LOD" , PropertyInfo (Variant::FLOAT, " lod3_distance" ), " set_lod3_distance" , " get_lod3_distance" );
42
- // register_property<LOD, float>("hideDist", &LOD::hide_distance, 100.0f);
36
+
43
37
ClassDB::bind_method (D_METHOD (" get_hide_distance" ), &LOD::get_enabled);
44
38
ClassDB::bind_method (D_METHOD (" set_hide_distance" , " p_hide_distance" ), &LOD::set_hide_distance);
45
39
ClassDB::add_property (" LOD" , PropertyInfo (Variant::FLOAT, " hide_distance" ), " set_hide_distance" , " get_hide_distance" );
46
- // register_property<LOD, float>("unloadDist", &LOD::unload_distance, -1.0f);
40
+
47
41
ClassDB::bind_method (D_METHOD (" get_unload_distance" ), &LOD::get_enabled);
48
42
ClassDB::bind_method (D_METHOD (" set_unload_distance" , " p_unload_distance" ), &LOD::set_unload_distance);
49
43
ClassDB::add_property (" LOD" , PropertyInfo (Variant::FLOAT, " unload_distance" ), " set_unload_distance" , " get_unload_distance" );
50
44
51
45
// Screen percentage ratios (and if applicable)
52
- // register_property<LOD, float>("lod1ratio", &LOD::lod1_ratio, 25.0f); // put any of these to -1 if you don't have the lod for it, don't want to hide/unload etc
53
46
ClassDB::bind_method (D_METHOD (" get_lod1_ratio" ), &LOD::get_enabled);
54
47
ClassDB::bind_method (D_METHOD (" set_lod1_ratio" , " p_lod1_ratio" ), &LOD::set_lod1_ratio);
55
48
ClassDB::add_property (" LOD" , PropertyInfo (Variant::FLOAT, " lod1_ratio" ), " set_lod1_ratio" , " get_lod1_ratio" );
56
- // register_property<LOD, float>("lod2ratio", &LOD::lod2_ratio, 10.0f);
49
+
57
50
ClassDB::bind_method (D_METHOD (" get_lod2_ratio" ), &LOD::get_enabled);
58
51
ClassDB::bind_method (D_METHOD (" set_lod2_ratio" , " p_lod2_ratio" ), &LOD::set_lod2_ratio);
59
52
ClassDB::add_property (" LOD" , PropertyInfo (Variant::FLOAT, " lod2_ratio" ), " set_lod2_ratio" , " get_lod2_ratio" );
60
- // register_property<LOD, float>("lod3ratio", &LOD::lod3_ratio, 5.5f);
53
+
61
54
ClassDB::bind_method (D_METHOD (" get_lod3_ratio" ), &LOD::get_enabled);
62
55
ClassDB::bind_method (D_METHOD (" set_lod3_ratio" , " p_lod3_ratio" ), &LOD::set_lod3_ratio);
63
56
ClassDB::add_property (" LOD" , PropertyInfo (Variant::FLOAT, " lod3_ratio" ), " set_lod3_ratio" , " get_lod3_ratio" );
64
- // register_property<LOD, float>("hideRatio", &LOD::hide_ratio, 1.0f);
57
+
65
58
ClassDB::bind_method (D_METHOD (" get_hide_ratio" ), &LOD::get_enabled);
66
59
ClassDB::bind_method (D_METHOD (" set_hide_ratio" , " p_hide_ratio" ), &LOD::set_hide_ratio);
67
60
ClassDB::add_property (" LOD" , PropertyInfo (Variant::FLOAT, " hide_ratio" ), " set_hide_ratio" , " get_hide_ratio" );
68
- // register_property<LOD, float>("unloadRatio", &LOD::unload_ratio, -1.0f);
61
+
69
62
ClassDB::bind_method (D_METHOD (" get_unload_ratio" ), &LOD::get_enabled);
70
63
ClassDB::bind_method (D_METHOD (" set_unload_ratio" , " p_unload_ratio" ), &LOD::set_unload_ratio);
71
64
ClassDB::add_property (" LOD" , PropertyInfo (Variant::FLOAT, " unload_ratio" ), " set_unload_ratio" , " get_unload_ratio" );
72
65
73
- // register_property<LOD, NodePath>("lod0_path", &LOD::lod0_path, NodePath());
74
66
ClassDB::bind_method (D_METHOD (" get_lod0_path" ), &LOD::get_lod0_path);
75
67
ClassDB::bind_method (D_METHOD (" set_lod0_path" , " p_lod0_path" ), &LOD::set_lod0_path);
76
68
ClassDB::add_property (" LOD" , PropertyInfo (Variant::NODE_PATH, " lod0_path" ), " set_lod0_path" , " get_lod0_path" );
77
- // register_property<LOD, NodePath>("lod1_path", &LOD::lod1_path, NodePath());
69
+
78
70
ClassDB::bind_method (D_METHOD (" get_lod1_path" ), &LOD::get_lod1_path);
79
71
ClassDB::bind_method (D_METHOD (" set_lod1_path" , " p_lod1_path" ), &LOD::set_lod1_path);
80
72
ClassDB::add_property (" LOD" , PropertyInfo (Variant::NODE_PATH, " lod1_path" ), " set_lod1_path" , " get_lod1_path" );
81
- // register_property<LOD, NodePath>("lod2_path", &LOD::lod2_path, NodePath());
73
+
82
74
ClassDB::bind_method (D_METHOD (" get_lod2_path" ), &LOD::get_lod2_path);
83
75
ClassDB::bind_method (D_METHOD (" set_lod2_path" , " p_lod2_path" ), &LOD::set_lod2_path);
84
76
ClassDB::add_property (" LOD" , PropertyInfo (Variant::NODE_PATH, " lod2_path" ), " set_lod2_path" , " get_lod2_path" );
85
- // register_property<LOD, NodePath>("lod3_path", &LOD::lod3_path, NodePath());
77
+
86
78
ClassDB::bind_method (D_METHOD (" get_lod3_path" ), &LOD::get_lod3_path);
87
79
ClassDB::bind_method (D_METHOD (" set_lod3_path" , " p_lod3_path" ), &LOD::set_lod3_path);
88
80
ClassDB::add_property (" LOD" , PropertyInfo (Variant::NODE_PATH, " lod3_path" ), " set_lod3_path" , " get_lod3_path" );
89
81
90
82
// Exposed methods
91
- // register_method("_process", &LOD::_process);
92
- // ClassDB::bind_method(D_METHOD("_process"), &LOD::_process);
93
- // register_method("_ready", &LOD::_ready);
94
- // ClassDB::bind_method(D_METHOD("_ready"), &LOD::_ready);
95
- // register_method("_enter_tree", &LOD::_enter_tree);
96
- // ClassDB::bind_method(D_METHOD("_enter_tree"), &LOD::_enter_tree);
97
- // register_method("_exit_tree", &LOD::_exit_tree);
98
- // ClassDB::bind_method(D_METHOD("_exit_tree"), &LOD::_exit_tree);
99
-
100
- // register_method("update_lod_AABB", &LOD::update_lod_AABB);
101
83
ClassDB::bind_method (D_METHOD (" update_lod_AABB" ), &LOD::update_lod_AABB);
102
- // register_method("update_lod_multipliers_from_manager", &LOD::update_lod_multipliers_from_manager);
103
84
ClassDB::bind_method (D_METHOD (" update_lod_multipliers_from_manager" ), &LOD::update_lod_multipliers_from_manager);
104
- // register_method("get_current_lod", &LOD::get_current_lod);
105
85
ClassDB::bind_method (D_METHOD (" get_current_lod" ), &LOD::get_current_lod);
106
86
107
87
// Signals
108
- // register_signal<LOD>("lod_changed", "lod", GODOT_VARIANT_TYPE_INT);
109
88
ADD_SIGNAL (MethodInfo (" lod_changed" , PropertyInfo (Variant::INT, " new_lod" )));
110
- // register_signal<LOD>("freed");
111
89
ADD_SIGNAL (MethodInfo (" freed" ));
112
90
113
91
}
@@ -169,7 +147,7 @@ void LOD::_ready() {
169
147
if (Engine::get_singleton ()->is_editor_hint ()) {
170
148
return ;
171
149
}
172
-
150
+
173
151
lod_component.setup (Object::cast_to<Node3D>(this ));
174
152
lod_component.lod_manager ->debug_level_print (1 , get_name () + String (" : Initializing Mesh LOD." ));
175
153
0 commit comments