build preview update
This commit is contained in:
29
Scripts/build_object.gd
Normal file
29
Scripts/build_object.gd
Normal file
@@ -0,0 +1,29 @@
|
||||
extends Node3D
|
||||
|
||||
var meshInstance: MeshInstance3D
|
||||
var default_materials
|
||||
|
||||
#var build_material
|
||||
@onready var build_material = load("res://Shaders/build_transparent.gdshader")
|
||||
|
||||
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)
|
||||
|
||||
|
||||
func set_green_color():
|
||||
for i in meshInstance.get_surface_override_material_count():
|
||||
meshInstance.set_surface_override_material(i, Global.build_material)
|
||||
|
||||
|
||||
|
||||
func _on_preview_create():
|
||||
set_green_color()
|
||||
1
Scripts/build_object.gd.uid
Normal file
1
Scripts/build_object.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://c61rr6to3q566
|
||||
@@ -1,13 +1,19 @@
|
||||
extends StaticBody3D
|
||||
|
||||
|
||||
|
||||
@onready var beds = preload("res://Scenes/Prefabs/DoubleBeds.tscn")
|
||||
@export var buildTransparentPreivew: MeshInstance3D
|
||||
|
||||
|
||||
var areas
|
||||
var previewObject: Node3D
|
||||
var is_placed = false
|
||||
func _ready() -> void:
|
||||
areas = get_children()
|
||||
buildTransparentPreivew.visible = false
|
||||
Global.exit_build_mode.connect(_on_exit_build_mode)
|
||||
Global.enter_build_mode.connect(_on_enter_build_mode)
|
||||
|
||||
|
||||
func _input_event(camera: Camera3D, event: InputEvent, event_position: Vector3, normal: Vector3, shape_idx: int) -> void:
|
||||
@@ -27,15 +33,26 @@ func _mouse_exit() -> void:
|
||||
func show_preview():
|
||||
previewObject = beds.instantiate()
|
||||
areas[0].add_child(previewObject)
|
||||
buildTransparentPreivew.visible = false
|
||||
Global.preview_created.emit()
|
||||
|
||||
func hide_preview():
|
||||
if is_placed != true:
|
||||
if previewObject != null:
|
||||
previewObject.queue_free()
|
||||
buildTransparentPreivew.visible = true
|
||||
|
||||
func place_object():
|
||||
is_placed = true
|
||||
buildTransparentPreivew.visible = false
|
||||
|
||||
|
||||
func _on_enter_build_mode():
|
||||
if !is_placed:
|
||||
buildTransparentPreivew.visible = true
|
||||
func _on_exit_build_mode():
|
||||
hide_preview()
|
||||
buildTransparentPreivew.visible = false
|
||||
|
||||
func set_preview_material():
|
||||
#beds
|
||||
pass
|
||||
|
||||
@@ -1,17 +1,25 @@
|
||||
extends Node3D
|
||||
@export var debugLabel1: Label
|
||||
|
||||
@onready var build_material = load("res://Shaders/build_transparent.gdshader")
|
||||
|
||||
signal exit_build_mode
|
||||
signal enter_build_mode
|
||||
|
||||
signal preview_created
|
||||
signal preview_destroyed
|
||||
|
||||
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:
|
||||
exit_build_mode.emit()
|
||||
build_mode = false
|
||||
else:
|
||||
enter_build_mode.emit()
|
||||
build_mode = true
|
||||
|
||||
|
||||
Reference in New Issue
Block a user