@@ -8,7 +8,7 @@ const Globals := preload("res://addons/splasher/globals.gd")
88
99@export_flags_3d_physics var temporary_layer : int
1010
11- var decal : Decal
11+ var decal_ref : Decal
1212var decal_dupe : Decal
1313var last_collider
1414
@@ -20,24 +20,33 @@ var editor_manager
2020
2121func _ready ():
2222 if not Engine .is_editor_hint ():
23+ queue_free ()
2324 return
25+
2426 editor_manager = Globals .get_editor_manager ()
25- decal = Decal .new ()
27+ decal_ref = Decal .new ()
28+
29+ editor_manager .select_decal .connect (on_decal_selected )
2630
27- editor_manager .select_decal .connect (_decal_selected )
31+ func on_decal_selected (path : String ):
32+ decal_ref .texture_albedo = ResourceLoader .load (path )
2833
29- func _decal_selected (path : String ):
30- decal .texture_albedo = ResourceLoader .load (path )
34+ func create_decal_dupe ():
35+ if decal_dupe :
36+ return
3137
32- func _create_decal ():
33- if decal_dupe : return
3438 var root := EditorInterface .get_edited_scene_root ()
35- decal_dupe = decal .duplicate ()
39+ decal_dupe = decal_ref .duplicate ()
3640 decal_dupe .process_mode = Node .PROCESS_MODE_DISABLED
37- var upper_fade = editor_manager .upper_fade
38- var lower_fade = editor_manager .lower_fade
39- decal_dupe .upper_fade = upper_fade
40- decal_dupe .lower_fade = lower_fade
41+
42+ if editor_manager .decal_defaults :
43+ editor_manager .decal_defaults .apply_to (decal_dupe )
44+ else :
45+ var upper_fade = editor_manager .upper_fade
46+ var lower_fade = editor_manager .lower_fade
47+ decal_dupe .upper_fade = upper_fade
48+ decal_dupe .lower_fade = lower_fade
49+
4150 var pivot := root
4251 var editor_selection := EditorInterface .get_selection ()
4352 if editor_selection .get_selected_nodes ().size () == 1 :
@@ -135,9 +144,9 @@ func on_ray_hit(hit) -> void:
135144 Globals .get_debug_draw_3d ().draw_line (hit_position , hit_position + hit_normal , Color .RED )
136145
137146 if not decal_dupe :
138- _create_decal ()
147+ create_decal_dupe ()
139148
140- if editor_manager .decal_settings .p_grid_snap :
149+ if editor_manager .decal_placement_settings .p_grid_snap :
141150 var snap_to := Vector3 (
142151 editor_manager .snap_step ,
143152 editor_manager .snap_step ,
@@ -148,7 +157,7 @@ func on_ray_hit(hit) -> void:
148157 decal_dupe .global_position = hit_position
149158 decal_dupe .size = add_scale
150159
151- if editor_manager .decal_settings .p_auto_thickness :
160+ if editor_manager .decal_placement_settings .p_auto_thickness :
152161 var hit_collider = hit .collider
153162 var hit_collider_layer = hit_collider .collision_layer
154163 var hit_collider_mask = hit_collider .collision_mask
0 commit comments