Files
project-thor/Scripts/build_object.gd
2025-08-15 20:35:27 +02:00

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()