build preview update
This commit is contained in:
@@ -3,25 +3,26 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://84bnb4rnuhuq"
|
uid="uid://84bnb4rnuhuq"
|
||||||
path="res://.godot/imported/double_bed_metal.png-ecfdaed077568d6224139d3066a4c4c8.ctex"
|
path.s3tc="res://.godot/imported/double_bed_metal.png-ecfdaed077568d6224139d3066a4c4c8.s3tc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://Blends/Mobel/textures/double_bed_metal.png"
|
source_file="res://Blends/Mobel/textures/double_bed_metal.png"
|
||||||
dest_files=["res://.godot/imported/double_bed_metal.png-ecfdaed077568d6224139d3066a4c4c8.ctex"]
|
dest_files=["res://.godot/imported/double_bed_metal.png-ecfdaed077568d6224139d3066a4c4c8.s3tc.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=2
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=false
|
mipmaps/generate=true
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
@@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
|||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=1
|
detect_3d/compress_to=0
|
||||||
|
|||||||
@@ -1,8 +1,27 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://0t0cvsitlfmm"]
|
[gd_scene load_steps=9 format=3 uid="uid://0t0cvsitlfmm"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://ca3mea0tt0xvg" path="res://Blends/Mobel/DoubleBeds.blend" id="1_kkvf5"]
|
[ext_resource type="Script" uid="uid://c61rr6to3q566" path="res://Scripts/build_object.gd" id="1_nn5da"]
|
||||||
|
[ext_resource type="ArrayMesh" uid="uid://cahq2fdeqqwhx" path="res://Blends/Mobel/DoubleBeds.obj" id="2_8ssp7"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://84bnb4rnuhuq" path="res://Blends/Mobel/textures/double_bed_metal.png" id="3_nn5da"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://lbbig7lpdun3" path="res://Blends/Mobel/textures/Material.003 Roughness.png" id="4_dn7et"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://kl1jplui8wfq" path="res://Blends/Mobel/textures/Material.003 Base Color.png" id="5_sp2kd"]
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_c1046"]
|
||||||
|
albedo_texture = ExtResource("3_nn5da")
|
||||||
|
roughness_texture = ExtResource("4_dn7et")
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k1k40"]
|
||||||
|
albedo_texture = ExtResource("5_sp2kd")
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_tma46"]
|
||||||
|
albedo_texture = ExtResource("5_sp2kd")
|
||||||
|
|
||||||
[node name="DoubleBeds" type="Node3D"]
|
[node name="DoubleBeds" type="Node3D"]
|
||||||
|
script = ExtResource("1_nn5da")
|
||||||
|
|
||||||
[node name="DoubleBeds" parent="." instance=ExtResource("1_kkvf5")]
|
[node name="DoubleBeds" type="MeshInstance3D" parent="."]
|
||||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -1.83435, 0, 0)
|
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -1.83435, 0, 0)
|
||||||
|
mesh = ExtResource("2_8ssp7")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_c1046")
|
||||||
|
surface_material_override/1 = SubResource("StandardMaterial3D_k1k40")
|
||||||
|
surface_material_override/2 = SubResource("StandardMaterial3D_tma46")
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
[gd_scene load_steps=8 format=3 uid="uid://dim2geqhn6d35"]
|
[gd_scene load_steps=11 format=3 uid="uid://dim2geqhn6d35"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dhls6unflalvd" path="res://Scripts/cart.gd" id="1_esjgi"]
|
[ext_resource type="Script" uid="uid://dhls6unflalvd" path="res://Scripts/cart.gd" id="1_esjgi"]
|
||||||
[ext_resource type="ArrayMesh" uid="uid://p3d7iitismhf" path="res://Blends/Cart/cart-bottom.obj" id="1_ux2tx"]
|
[ext_resource type="ArrayMesh" uid="uid://p3d7iitismhf" path="res://Blends/Cart/cart-bottom.obj" id="1_ux2tx"]
|
||||||
[ext_resource type="ArrayMesh" uid="uid://docto7iocves6" path="res://Blends/Cart/wheels.obj" id="2_2wj72"]
|
[ext_resource type="ArrayMesh" uid="uid://docto7iocves6" path="res://Blends/Cart/wheels.obj" id="2_2wj72"]
|
||||||
[ext_resource type="ArrayMesh" uid="uid://cayqoyyq7nbij" path="res://Blends/Cart/cart-top.obj" id="3_2wj72"]
|
[ext_resource type="ArrayMesh" uid="uid://cayqoyyq7nbij" path="res://Blends/Cart/cart-top.obj" id="3_2wj72"]
|
||||||
[ext_resource type="Script" uid="uid://bcmd74mxocn7e" path="res://Scripts/building_area.gd" id="5_eosii"]
|
[ext_resource type="Script" uid="uid://bcmd74mxocn7e" path="res://Scripts/building_area.gd" id="5_eosii"]
|
||||||
|
[ext_resource type="Shader" uid="uid://bfv6ckihralab" path="res://Shaders/build_transparent.gdshader" id="6_ru0md"]
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_esjgi"]
|
[sub_resource type="BoxShape3D" id="BoxShape3D_esjgi"]
|
||||||
size = Vector3(22.2341, 4.23804, 0.494629)
|
size = Vector3(22.2341, 4.23804, 0.494629)
|
||||||
@@ -12,6 +13,13 @@ size = Vector3(22.2341, 4.23804, 0.494629)
|
|||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_eosii"]
|
[sub_resource type="BoxShape3D" id="BoxShape3D_eosii"]
|
||||||
size = Vector3(5.40002, 4.29805, 2.28394)
|
size = Vector3(5.40002, 4.29805, 2.28394)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_eosii"]
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_u7bw1"]
|
||||||
|
render_priority = 0
|
||||||
|
shader = ExtResource("6_ru0md")
|
||||||
|
shader_parameter/alpha = 0.5
|
||||||
|
|
||||||
[node name="Cart" type="Node3D" node_paths=PackedStringArray("cartTop")]
|
[node name="Cart" type="Node3D" node_paths=PackedStringArray("cartTop")]
|
||||||
script = ExtResource("1_esjgi")
|
script = ExtResource("1_esjgi")
|
||||||
cartTop = NodePath("Cart-top")
|
cartTop = NodePath("Cart-top")
|
||||||
@@ -61,21 +69,17 @@ shape = SubResource("BoxShape3D_esjgi")
|
|||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.282789, 1.61902, -2.6054)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.282789, 1.61902, -2.6054)
|
||||||
shape = SubResource("BoxShape3D_esjgi")
|
shape = SubResource("BoxShape3D_esjgi")
|
||||||
|
|
||||||
[node name="BuildingArea2" type="StaticBody3D" parent="."]
|
[node name="BuildingArea" type="StaticBody3D" parent="." node_paths=PackedStringArray("buildTransparentPreivew")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.23003, 0, 0)
|
|
||||||
script = ExtResource("5_eosii")
|
|
||||||
metadata/is_building_area = true
|
|
||||||
|
|
||||||
[node name="smallBuildingArea2" type="CollisionShape3D" parent="BuildingArea2"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.69414, 1.02766, -1.22106)
|
|
||||||
shape = SubResource("BoxShape3D_eosii")
|
|
||||||
metadata/is_building_area = true
|
|
||||||
|
|
||||||
[node name="BuildingArea" type="StaticBody3D" parent="."]
|
|
||||||
script = ExtResource("5_eosii")
|
script = ExtResource("5_eosii")
|
||||||
|
buildTransparentPreivew = NodePath("BuildAreaModeView")
|
||||||
metadata/is_building_area = true
|
metadata/is_building_area = true
|
||||||
|
|
||||||
[node name="smallBuildingArea2" type="CollisionShape3D" parent="BuildingArea"]
|
[node name="smallBuildingArea2" type="CollisionShape3D" parent="BuildingArea"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.69414, 1.02766, -1.22106)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.69414, 1.02766, -1.22106)
|
||||||
shape = SubResource("BoxShape3D_eosii")
|
shape = SubResource("BoxShape3D_eosii")
|
||||||
metadata/is_building_area = true
|
metadata/is_building_area = true
|
||||||
|
|
||||||
|
[node name="BuildAreaModeView" type="MeshInstance3D" parent="BuildingArea"]
|
||||||
|
transform = Transform3D(5.40002, 0, 0, 0, 4.29805, 0, 0, 0, 2.28394, -5.69414, 1.02766, -1.22106)
|
||||||
|
mesh = SubResource("BoxMesh_eosii")
|
||||||
|
surface_material_override/0 = SubResource("ShaderMaterial_u7bw1")
|
||||||
|
|||||||
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
|
extends StaticBody3D
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@onready var beds = preload("res://Scenes/Prefabs/DoubleBeds.tscn")
|
@onready var beds = preload("res://Scenes/Prefabs/DoubleBeds.tscn")
|
||||||
|
@export var buildTransparentPreivew: MeshInstance3D
|
||||||
|
|
||||||
|
|
||||||
var areas
|
var areas
|
||||||
var previewObject: Node3D
|
var previewObject: Node3D
|
||||||
var is_placed = false
|
var is_placed = false
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
areas = get_children()
|
areas = get_children()
|
||||||
|
buildTransparentPreivew.visible = false
|
||||||
Global.exit_build_mode.connect(_on_exit_build_mode)
|
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:
|
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():
|
func show_preview():
|
||||||
previewObject = beds.instantiate()
|
previewObject = beds.instantiate()
|
||||||
areas[0].add_child(previewObject)
|
areas[0].add_child(previewObject)
|
||||||
|
buildTransparentPreivew.visible = false
|
||||||
|
Global.preview_created.emit()
|
||||||
|
|
||||||
func hide_preview():
|
func hide_preview():
|
||||||
if is_placed != true:
|
if is_placed != true:
|
||||||
if previewObject != null:
|
if previewObject != null:
|
||||||
previewObject.queue_free()
|
previewObject.queue_free()
|
||||||
|
buildTransparentPreivew.visible = true
|
||||||
|
|
||||||
func place_object():
|
func place_object():
|
||||||
is_placed = true
|
is_placed = true
|
||||||
|
buildTransparentPreivew.visible = false
|
||||||
|
|
||||||
|
func _on_enter_build_mode():
|
||||||
|
if !is_placed:
|
||||||
|
buildTransparentPreivew.visible = true
|
||||||
func _on_exit_build_mode():
|
func _on_exit_build_mode():
|
||||||
hide_preview()
|
hide_preview()
|
||||||
|
buildTransparentPreivew.visible = false
|
||||||
|
|
||||||
|
func set_preview_material():
|
||||||
|
#beds
|
||||||
|
pass
|
||||||
|
|||||||
@@ -1,17 +1,25 @@
|
|||||||
extends Node3D
|
extends Node3D
|
||||||
@export var debugLabel1: Label
|
@export var debugLabel1: Label
|
||||||
|
@onready var build_material = load("res://Shaders/build_transparent.gdshader")
|
||||||
|
|
||||||
signal exit_build_mode
|
signal exit_build_mode
|
||||||
|
signal enter_build_mode
|
||||||
|
|
||||||
|
signal preview_created
|
||||||
|
signal preview_destroyed
|
||||||
|
|
||||||
var build_mode: bool = false
|
var build_mode: bool = false
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
build_material.set("alpha", 0.5)
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
if event.is_action_released("enter_build_mode"):
|
if event.is_action_released("enter_build_mode"):
|
||||||
if build_mode:
|
if build_mode:
|
||||||
exit_build_mode.emit()
|
exit_build_mode.emit()
|
||||||
build_mode = false
|
build_mode = false
|
||||||
else:
|
else:
|
||||||
|
enter_build_mode.emit()
|
||||||
build_mode = true
|
build_mode = true
|
||||||
|
|
||||||
|
|||||||
15
Shaders/build_transparent.gdshader
Normal file
15
Shaders/build_transparent.gdshader
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
shader_type spatial;
|
||||||
|
uniform float alpha;
|
||||||
|
void vertex() {
|
||||||
|
// Called for every vertex the material is visible on.
|
||||||
|
}
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
ALBEDO = vec3(0,1.0,0);
|
||||||
|
ALPHA = alpha;
|
||||||
|
}
|
||||||
|
|
||||||
|
//void light() {
|
||||||
|
// // Called for every pixel for every light affecting the material.
|
||||||
|
// // Uncomment to replace the default light processing function with this one.
|
||||||
|
//}
|
||||||
1
Shaders/build_transparent.gdshader.uid
Normal file
1
Shaders/build_transparent.gdshader.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://bfv6ckihralab
|
||||||
Reference in New Issue
Block a user