build update

This commit is contained in:
Nikolai Fesenko
2025-08-14 18:07:45 +02:00
parent 248ef3b912
commit 8ef9cf5971
6 changed files with 77 additions and 26 deletions

View File

@@ -1,29 +1,37 @@
extends Node3D
var meshInstance: MeshInstance3D
var default_materials
#var build_material
@onready var build_material = load("res://Shaders/build_transparent.gdshader")
@export var meshInstance: MeshInstance3D
@export var greenMeshInstance: MeshInstance3D
@export var RedMeshInstance: MeshInstance3D
func _ready() -> void:
default_materials = Array()
meshInstance = $DoubleBeds
default_materials.resize(meshInstance.get_surface_override_material_count())
set_default_materials()
Global.preview_created.connect(_on_preview_create)
print(build_material)
func set_default_materials():
for i in meshInstance.get_surface_override_material_count():
default_materials[i] = meshInstance.get_surface_override_material(i)
Global.object_placed.connect(_on_object_placed)
func set_green_color():
for i in meshInstance.get_surface_override_material_count():
meshInstance.set_surface_override_material(i, Global.build_material)
hide_mainMesh()
greenMeshInstance.visible = true
func set_red_color():
hide_mainMesh()
RedMeshInstance.visible = true
func hide_mainMesh():
meshInstance.visible = false
func show_mainMesh():
meshInstance.visible = true
greenMeshInstance.visible = false
RedMeshInstance.visible = false
func _on_preview_create():
set_green_color()
func _on_object_placed():
show_mainMesh()
greenMeshInstance.queue_free()
RedMeshInstance.queue_free()

View File

@@ -45,6 +45,7 @@ func hide_preview():
func place_object():
is_placed = true
buildTransparentPreivew.visible = false
Global.object_placed.emit()
func _on_enter_build_mode():
if !is_placed:
@@ -52,7 +53,3 @@ func _on_enter_build_mode():
func _on_exit_build_mode():
hide_preview()
buildTransparentPreivew.visible = false
func set_preview_material():
#beds
pass

View File

@@ -1,6 +1,5 @@
extends Node3D
@export var debugLabel1: Label
@onready var build_material = load("res://Shaders/build_transparent.gdshader")
signal exit_build_mode
signal enter_build_mode
@@ -8,12 +7,11 @@ signal enter_build_mode
signal preview_created
signal preview_destroyed
signal object_placed
var build_mode: bool = false
func _ready() -> void:
build_material.set("alpha", 0.5)
func _input(event: InputEvent) -> void:
if event.is_action_released("enter_build_mode"):
if build_mode: