Started buildings layout editor

This commit is contained in:
2024-10-05 03:35:32 +03:00
parent db39715354
commit 166e6d6b4a
12 changed files with 2129 additions and 7 deletions

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,16 @@
extends Spatial
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
# pass

View File

@@ -0,0 +1,306 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://main/building_layout_editor.gd" type="Script" id=1]
[ext_resource path="res://astream/building-layouts/building-elements.glb" type="PackedScene" id=2]
[sub_resource type="CubeMesh" id=1]
size = Vector3( 40, 1, 40 )
[node name="building_layout_editor" type="Spatial"]
script = ExtResource( 1 )
[node name="menu_panel" type="HBoxContainer" parent="."]
unique_name_in_owner = true
margin_right = 1024.0
margin_bottom = 20.0
[node name="FileMenu" type="MenuButton" parent="menu_panel"]
margin_right = 35.0
margin_bottom = 20.0
text = "File"
items = [ "Save", null, 0, false, false, 100, 0, null, "", false ]
switch_on_hover = true
[node name="ElementMenu" type="MenuButton" parent="menu_panel"]
margin_left = 39.0
margin_right = 104.0
margin_bottom = 20.0
focus_mode = 2
text = "Element"
items = [ "Layout...", null, 0, false, false, 200, 0, null, "", false, "Element types...", null, 0, false, false, 201, 0, null, "", false, "Elements...", null, 0, false, false, 202, 0, null, "", false, "", null, 0, false, true, 3, 0, null, "", true ]
switch_on_hover = true
[node name="ExteriorMenu" type="MenuButton" parent="menu_panel"]
margin_left = 108.0
margin_right = 169.0
margin_bottom = 20.0
focus_mode = 2
text = "Exterior"
switch_on_hover = true
[node name="InteriorMenu" type="MenuButton" parent="menu_panel"]
margin_left = 173.0
margin_right = 233.0
margin_bottom = 20.0
focus_mode = 2
text = "Interior"
switch_on_hover = true
[node name="MeshInstance" type="MeshInstance" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0 )
mesh = SubResource( 1 )
[node name="DirectionalLight" type="DirectionalLight" parent="."]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 100, 0 )
[node name="Camera" type="Camera" parent="."]
transform = Transform( 0.707107, 0.5, -0.5, 0, 0.707107, 0.707107, 0.707107, -0.5, 0.5, -25, 25, 25 )
[node name="VBoxContainer" type="VBoxContainer" parent="."]
anchor_left = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
margin_left = -314.0
[node name="HSeparator2" type="HSeparator" parent="VBoxContainer"]
margin_right = 314.0
margin_bottom = 4.0
[node name="Label" type="Label" parent="VBoxContainer"]
margin_top = 8.0
margin_right = 314.0
margin_bottom = 22.0
text = "Properties"
[node name="HSeparator" type="HSeparator" parent="VBoxContainer"]
margin_top = 26.0
margin_right = 314.0
margin_bottom = 30.0
[node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer"]
margin_top = 34.0
margin_right = 314.0
margin_bottom = 134.0
rect_min_size = Vector2( 0, 100 )
size_flags_vertical = 3
scroll_horizontal_enabled = false
[node name="layout_mesh_buttons" type="VBoxContainer" parent="VBoxContainer/ScrollContainer"]
unique_name_in_owner = true
margin_right = 302.0
margin_bottom = 168.0
rect_min_size = Vector2( 100, 0 )
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="socket_editor" type="PanelContainer" parent="VBoxContainer"]
unique_name_in_owner = true
margin_top = 138.0
margin_right = 314.0
margin_bottom = 420.0
[node name="v" type="VBoxContainer" parent="VBoxContainer/socket_editor"]
margin_left = 7.0
margin_top = 7.0
margin_right = 307.0
margin_bottom = 275.0
[node name="socket_new_element" type="Button" parent="VBoxContainer/socket_editor/v"]
unique_name_in_owner = true
margin_right = 300.0
margin_bottom = 20.0
text = "New Element Type"
[node name="socket_new_element_name" type="LineEdit" parent="VBoxContainer/socket_editor/v"]
unique_name_in_owner = true
margin_top = 24.0
margin_right = 300.0
margin_bottom = 48.0
[node name="element_type_list" type="ItemList" parent="VBoxContainer/socket_editor/v"]
unique_name_in_owner = true
margin_top = 52.0
margin_right = 300.0
margin_bottom = 112.0
rect_min_size = Vector2( 0, 60 )
items = [ "Item 0", null, false, "Item 1", null, false, "Item 2", null, false, "Item 3", null, false ]
[node name="socket_list" type="ItemList" parent="VBoxContainer/socket_editor/v"]
unique_name_in_owner = true
margin_top = 116.0
margin_right = 300.0
margin_bottom = 176.0
rect_min_size = Vector2( 0, 60 )
items = [ "floor", null, false, "west_wall", null, false, "east_wall", null, false, "north_wall", null, false, "south_wall", null, false, "diagonal_wall", null, false, "diagonal2_wall", null, false ]
[node name="socket_transform_editor" type="VBoxContainer" parent="VBoxContainer/socket_editor/v"]
unique_name_in_owner = true
margin_top = 180.0
margin_right = 300.0
margin_bottom = 268.0
[node name="offset_label" type="Label" parent="VBoxContainer/socket_editor/v/socket_transform_editor"]
margin_right = 300.0
margin_bottom = 14.0
text = "Offset"
[node name="socket_editor_offset_base" type="HBoxContainer" parent="VBoxContainer/socket_editor/v/socket_transform_editor"]
unique_name_in_owner = true
margin_top = 18.0
margin_right = 300.0
margin_bottom = 42.0
[node name="x_label" type="Label" parent="VBoxContainer/socket_editor/v/socket_transform_editor/socket_editor_offset_base"]
margin_top = 5.0
margin_right = 8.0
margin_bottom = 19.0
text = "X"
[node name="x_edit" type="LineEdit" parent="VBoxContainer/socket_editor/v/socket_transform_editor/socket_editor_offset_base"]
margin_left = 12.0
margin_right = 85.0
margin_bottom = 24.0
size_flags_horizontal = 3
[node name="y_label" type="Label" parent="VBoxContainer/socket_editor/v/socket_transform_editor/socket_editor_offset_base"]
margin_left = 89.0
margin_top = 5.0
margin_right = 96.0
margin_bottom = 19.0
text = "Y"
[node name="y_edit" type="LineEdit" parent="VBoxContainer/socket_editor/v/socket_transform_editor/socket_editor_offset_base"]
margin_left = 100.0
margin_right = 174.0
margin_bottom = 24.0
size_flags_horizontal = 3
[node name="z_label" type="Label" parent="VBoxContainer/socket_editor/v/socket_transform_editor/socket_editor_offset_base"]
margin_left = 178.0
margin_top = 5.0
margin_right = 186.0
margin_bottom = 19.0
text = "Z"
[node name="z_edit" type="LineEdit" parent="VBoxContainer/socket_editor/v/socket_transform_editor/socket_editor_offset_base"]
margin_left = 190.0
margin_right = 263.0
margin_bottom = 24.0
size_flags_horizontal = 3
[node name="set" type="Button" parent="VBoxContainer/socket_editor/v/socket_transform_editor/socket_editor_offset_base"]
margin_left = 267.0
margin_right = 299.0
margin_bottom = 24.0
text = "Set"
[node name="rotation_label" type="Label" parent="VBoxContainer/socket_editor/v/socket_transform_editor"]
margin_top = 46.0
margin_right = 300.0
margin_bottom = 60.0
text = "Rotation"
[node name="socket_editor_rotation_base" type="HBoxContainer" parent="VBoxContainer/socket_editor/v/socket_transform_editor"]
unique_name_in_owner = true
margin_top = 64.0
margin_right = 300.0
margin_bottom = 88.0
[node name="x_label" type="Label" parent="VBoxContainer/socket_editor/v/socket_transform_editor/socket_editor_rotation_base"]
margin_top = 5.0
margin_right = 8.0
margin_bottom = 19.0
text = "X"
[node name="x_edit" type="LineEdit" parent="VBoxContainer/socket_editor/v/socket_transform_editor/socket_editor_rotation_base"]
margin_left = 12.0
margin_right = 85.0
margin_bottom = 24.0
size_flags_horizontal = 3
[node name="y_label" type="Label" parent="VBoxContainer/socket_editor/v/socket_transform_editor/socket_editor_rotation_base"]
margin_left = 89.0
margin_top = 5.0
margin_right = 96.0
margin_bottom = 19.0
text = "Y"
[node name="y_edit" type="LineEdit" parent="VBoxContainer/socket_editor/v/socket_transform_editor/socket_editor_rotation_base"]
margin_left = 100.0
margin_right = 174.0
margin_bottom = 24.0
size_flags_horizontal = 3
[node name="z_label" type="Label" parent="VBoxContainer/socket_editor/v/socket_transform_editor/socket_editor_rotation_base"]
margin_left = 178.0
margin_top = 5.0
margin_right = 186.0
margin_bottom = 19.0
text = "Z"
[node name="z_edit" type="LineEdit" parent="VBoxContainer/socket_editor/v/socket_transform_editor/socket_editor_rotation_base"]
margin_left = 190.0
margin_right = 263.0
margin_bottom = 24.0
size_flags_horizontal = 3
[node name="set" type="Button" parent="VBoxContainer/socket_editor/v/socket_transform_editor/socket_editor_rotation_base"]
margin_left = 267.0
margin_right = 299.0
margin_bottom = 24.0
text = "Set"
[node name="element_editor" type="PanelContainer" parent="VBoxContainer"]
unique_name_in_owner = true
margin_top = 424.0
margin_right = 314.0
margin_bottom = 691.0
[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/element_editor"]
margin_left = 7.0
margin_top = 7.0
margin_right = 307.0
margin_bottom = 260.0
[node name="element_new_element" type="Button" parent="VBoxContainer/element_editor/VBoxContainer"]
unique_name_in_owner = true
margin_right = 300.0
margin_bottom = 20.0
text = "New element"
[node name="element_new_element_name" type="LineEdit" parent="VBoxContainer/element_editor/VBoxContainer"]
unique_name_in_owner = true
margin_top = 24.0
margin_right = 300.0
margin_bottom = 48.0
[node name="element_list" type="ItemList" parent="VBoxContainer/element_editor/VBoxContainer"]
unique_name_in_owner = true
margin_top = 52.0
margin_right = 300.0
margin_bottom = 97.0
rect_min_size = Vector2( 0, 45 )
[node name="element_type_select" type="OptionButton" parent="VBoxContainer/element_editor/VBoxContainer"]
unique_name_in_owner = true
margin_top = 101.0
margin_right = 300.0
margin_bottom = 121.0
[node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer/element_editor/VBoxContainer"]
margin_top = 125.0
margin_right = 300.0
margin_bottom = 253.0
rect_min_size = Vector2( 300, 128 )
size_flags_horizontal = 3
[node name="element_mesh_select" type="GridContainer" parent="VBoxContainer/element_editor/VBoxContainer/ScrollContainer"]
unique_name_in_owner = true
margin_right = 300.0
margin_bottom = 128.0
size_flags_horizontal = 3
size_flags_vertical = 3
columns = 2
[node name="BuildingLayoutEditor" type="BuildingLayoutEditor" parent="."]
source = ExtResource( 2 )