49 lines
1.1 KiB
GDScript
49 lines
1.1 KiB
GDScript
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()
|