31 lines
994 B
GDScript
31 lines
994 B
GDScript
extends Node3D
|
|
|
|
# Referenz zum Mesh, damit wir das Material ändern können
|
|
@export var mesh_instance : MeshInstance3D
|
|
|
|
# Platzhalter für die zwei Texturen (Bilder)
|
|
@export var texture_baby : Texture2D # Gekritzel
|
|
@export var texture_teen : Texture2D # Klartext
|
|
|
|
func _ready():
|
|
# Wir stellen sicher, dass das Material einzigartig ist,
|
|
# damit wir nicht versehentlich alle Papiere in der Welt ändern.
|
|
if mesh_instance.material_override:
|
|
mesh_instance.material_override = mesh_instance.material_override.duplicate()
|
|
elif mesh_instance.mesh and mesh_instance.mesh.material:
|
|
mesh_instance.mesh.material = mesh_instance.mesh.material.duplicate()
|
|
|
|
func update_texture(is_teen: bool):
|
|
# Wir holen uns das aktuelle Material
|
|
var mat = null
|
|
if mesh_instance.material_override:
|
|
mat = mesh_instance.material_override
|
|
else:
|
|
mat = mesh_instance.mesh.material
|
|
|
|
if mat is StandardMaterial3D:
|
|
if is_teen:
|
|
mat.albedo_texture = texture_teen
|
|
else:
|
|
mat.albedo_texture = texture_baby
|