extends Node3D @export var meshInstance: MeshInstance3D @export var preview_shader: ShaderMaterial var default_shaders: Array func _ready() -> void: Global.preview_created.connect(_on_preview_create) Global.object_placed.connect(_on_object_placed) set_default_shaders() func set_default_shaders(): var amount_shaders = meshInstance.get_surface_override_material_count() default_shaders.resize( amount_shaders) for i in amount_shaders: default_shaders[i] = meshInstance.get_surface_override_material(i) func restore_default_shaders(): for i in meshInstance.get_surface_override_material_count(): meshInstance.set_surface_override_material(i,default_shaders[i]) pass func set_preview_shader_color(): if true: set_green_color() for i in meshInstance.get_surface_override_material_count(): meshInstance.set_surface_override_material(i,preview_shader) pass func set_green_color(): preview_shader.set_shader_parameter("color", Vector3(0,1.0,0)) func set_red_color(): preview_shader.set_shader_parameter("color", Vector3(1.0,0,0)) pass func _on_preview_create(): set_preview_shader_color() func _on_object_placed(): restore_default_shaders()