remade free tiles
This commit is contained in:
parent
cba56ef1da
commit
280318b8d3
|
@ -74,7 +74,6 @@ run={
|
||||||
LMC={
|
LMC={
|
||||||
"deadzone": 0.5,
|
"deadzone": 0.5,
|
||||||
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null)
|
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null)
|
||||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null)
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
"tile type loop"={
|
"tile type loop"={
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://csfa8wr1fbfb2"]
|
[gd_scene load_steps=3 format=3 uid="uid://csfa8wr1fbfb2"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scripts/ingame_menu.gd" id="1_swq50"]
|
[ext_resource type="Script" path="res://scripts/ingame_menu.gd" id="1_swq50"]
|
||||||
[ext_resource type="Script" path="res://scripts/menu_button.gd" id="2_ey872"]
|
[ext_resource type="Script" path="res://scripts/m_button.gd" id="2_cehp5"]
|
||||||
|
|
||||||
[node name="ingame_menu" type="Control"]
|
[node name="ingame_menu" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
|
@ -48,7 +48,7 @@ offset_bottom = -14.0
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
text = "Save world"
|
text = "Save world"
|
||||||
script = ExtResource("2_ey872")
|
script = ExtResource("2_cehp5")
|
||||||
|
|
||||||
[node name="save_exit_button" type="Button" parent="Buttons"]
|
[node name="save_exit_button" type="Button" parent="Buttons"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
@ -59,7 +59,7 @@ offset_bottom = 53.0
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
text = "Save and exit game"
|
text = "Save and exit game"
|
||||||
script = ExtResource("2_ey872")
|
script = ExtResource("2_cehp5")
|
||||||
|
|
||||||
[node name="exit_nosave_button" type="Button" parent="Buttons"]
|
[node name="exit_nosave_button" type="Button" parent="Buttons"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
@ -70,4 +70,4 @@ offset_bottom = 243.0
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
text = "exit without saving"
|
text = "exit without saving"
|
||||||
script = ExtResource("2_ey872")
|
script = ExtResource("2_cehp5")
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=2 format=3 uid="uid://byrk15nhm7h45"]
|
[gd_scene load_steps=2 format=3 uid="uid://byrk15nhm7h45"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scripts/menu_button.gd" id="1_48nxl"]
|
[ext_resource type="Script" path="res://scripts/m_button.gd" id="1_f5n0m"]
|
||||||
|
|
||||||
[node name="Main menu" type="Control"]
|
[node name="Main menu" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
|
@ -24,7 +24,7 @@ offset_bottom = -42.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
text = "New world"
|
text = "New world"
|
||||||
script = ExtResource("1_48nxl")
|
script = ExtResource("1_f5n0m")
|
||||||
|
|
||||||
[node name="load_world_button" type="Button" parent="."]
|
[node name="load_world_button" type="Button" parent="."]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
@ -40,7 +40,7 @@ offset_bottom = 15.5
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
text = "Load world"
|
text = "Load world"
|
||||||
script = ExtResource("1_48nxl")
|
script = ExtResource("1_f5n0m")
|
||||||
|
|
||||||
[node name="quit_button" type="Button" parent="."]
|
[node name="quit_button" type="Button" parent="."]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
@ -56,4 +56,4 @@ offset_bottom = 86.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
text = "Quit"
|
text = "Quit"
|
||||||
script = ExtResource("1_48nxl")
|
script = ExtResource("1_f5n0m")
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
[gd_scene format=3 uid="uid://bs7ctvbx7xov5"]
|
[gd_scene load_steps=3 format=3 uid="uid://bs7ctvbx7xov5"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/ingame_menu.gd" id="1_6fvrf"]
|
||||||
|
[ext_resource type="Script" path="res://scripts/menu_button.gd" id="2_n0jsa"]
|
||||||
|
|
||||||
[node name="UI" type="Control"]
|
[node name="UI" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
|
@ -9,6 +12,76 @@ grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
mouse_filter = 1
|
mouse_filter = 1
|
||||||
|
|
||||||
|
[node name="ingame_menu" type="Control" parent="."]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_6fvrf")
|
||||||
|
|
||||||
|
[node name="PanelContainer" type="PanelContainer" parent="ingame_menu"]
|
||||||
|
modulate = Color(1, 1, 1, 0.501961)
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_left = 89.0
|
||||||
|
offset_top = 93.0
|
||||||
|
offset_right = -89.0
|
||||||
|
offset_bottom = -93.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="Buttons" type="Control" parent="ingame_menu"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -20.0
|
||||||
|
offset_top = -20.0
|
||||||
|
offset_right = 20.0
|
||||||
|
offset_bottom = 20.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="save_world_button" type="Button" parent="ingame_menu/Buttons"]
|
||||||
|
layout_mode = 2
|
||||||
|
offset_left = -45.0
|
||||||
|
offset_top = -45.0
|
||||||
|
offset_right = 46.0
|
||||||
|
offset_bottom = -14.0
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
size_flags_vertical = 4
|
||||||
|
text = "Save world"
|
||||||
|
script = ExtResource("2_n0jsa")
|
||||||
|
|
||||||
|
[node name="save_exit_button" type="Button" parent="ingame_menu/Buttons"]
|
||||||
|
layout_mode = 2
|
||||||
|
offset_left = -71.0
|
||||||
|
offset_top = 22.0
|
||||||
|
offset_right = 87.0
|
||||||
|
offset_bottom = 53.0
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
size_flags_vertical = 4
|
||||||
|
text = "Save and exit game"
|
||||||
|
script = ExtResource("2_n0jsa")
|
||||||
|
|
||||||
|
[node name="exit_nosave_button" type="Button" parent="ingame_menu/Buttons"]
|
||||||
|
layout_mode = 2
|
||||||
|
offset_left = 334.0
|
||||||
|
offset_top = 212.0
|
||||||
|
offset_right = 492.0
|
||||||
|
offset_bottom = 243.0
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
size_flags_vertical = 4
|
||||||
|
text = "exit without saving"
|
||||||
|
script = ExtResource("2_n0jsa")
|
||||||
|
|
||||||
[node name="velocity_label" type="Label" parent="."]
|
[node name="velocity_label" type="Label" parent="."]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 1
|
anchors_preset = 1
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
[gd_scene load_steps=5 format=3 uid="uid://b6er1dx11vq1a"]
|
[gd_scene load_steps=3 format=3 uid="uid://b6er1dx11vq1a"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scripts/God.gd" id="1_hfa56"]
|
[ext_resource type="Script" path="res://scripts/God.gd" id="1_hfa56"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bs7ctvbx7xov5" path="res://scenes/UI/ui.tscn" id="2_tlgt4"]
|
[ext_resource type="PackedScene" uid="uid://bs7ctvbx7xov5" path="res://scenes/UI/ui.tscn" id="2_tlgt4"]
|
||||||
[ext_resource type="Script" path="res://scripts/ingame_menu.gd" id="3_26rdb"]
|
|
||||||
[ext_resource type="Script" path="res://scripts/ingame_menu_button.gd" id="4_ggyng"]
|
|
||||||
|
|
||||||
[node name="God" type="Node3D"]
|
[node name="God" type="Node3D"]
|
||||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0)
|
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0)
|
||||||
|
@ -17,72 +15,3 @@ target_position = Vector3(100, 0, 0)
|
||||||
collision_mask = 3
|
collision_mask = 3
|
||||||
|
|
||||||
[node name="UI" parent="." instance=ExtResource("2_tlgt4")]
|
[node name="UI" parent="." instance=ExtResource("2_tlgt4")]
|
||||||
|
|
||||||
[node name="ingame_menu" type="Control" parent="."]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
script = ExtResource("3_26rdb")
|
|
||||||
|
|
||||||
[node name="PanelContainer" type="PanelContainer" parent="ingame_menu"]
|
|
||||||
modulate = Color(1, 1, 1, 0.501961)
|
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
offset_left = 89.0
|
|
||||||
offset_top = 93.0
|
|
||||||
offset_right = -89.0
|
|
||||||
offset_bottom = -93.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
|
|
||||||
[node name="Buttons" type="Control" parent="ingame_menu"]
|
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = 8
|
|
||||||
anchor_left = 0.5
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_right = 0.5
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
offset_left = -20.0
|
|
||||||
offset_top = -20.0
|
|
||||||
offset_right = 20.0
|
|
||||||
offset_bottom = 20.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
|
|
||||||
[node name="save_world_button" type="Button" parent="ingame_menu/Buttons"]
|
|
||||||
layout_mode = 2
|
|
||||||
offset_left = -45.0
|
|
||||||
offset_top = -45.0
|
|
||||||
offset_right = 46.0
|
|
||||||
offset_bottom = -14.0
|
|
||||||
size_flags_horizontal = 4
|
|
||||||
size_flags_vertical = 4
|
|
||||||
text = "Save world"
|
|
||||||
script = ExtResource("4_ggyng")
|
|
||||||
|
|
||||||
[node name="save_exit_button" type="Button" parent="ingame_menu/Buttons"]
|
|
||||||
layout_mode = 2
|
|
||||||
offset_left = -71.0
|
|
||||||
offset_top = 22.0
|
|
||||||
offset_right = 87.0
|
|
||||||
offset_bottom = 53.0
|
|
||||||
size_flags_horizontal = 4
|
|
||||||
size_flags_vertical = 4
|
|
||||||
text = "Save and exit game"
|
|
||||||
script = ExtResource("4_ggyng")
|
|
||||||
|
|
||||||
[node name="exit_nosave_button" type="Button" parent="ingame_menu/Buttons"]
|
|
||||||
layout_mode = 2
|
|
||||||
offset_left = 334.0
|
|
||||||
offset_top = 212.0
|
|
||||||
offset_right = 492.0
|
|
||||||
offset_bottom = 243.0
|
|
||||||
size_flags_horizontal = 4
|
|
||||||
size_flags_vertical = 4
|
|
||||||
text = "exit without saving"
|
|
||||||
script = ExtResource("4_ggyng")
|
|
||||||
|
|
|
@ -1,22 +1,19 @@
|
||||||
[gd_scene load_steps=11 format=3 uid="uid://dj0odn77jplje"]
|
[gd_scene load_steps=10 format=3 uid="uid://dj0odn77jplje"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scripts/Tile.gd" id="1_s01tx"]
|
[ext_resource type="Script" path="res://scripts/Tile.gd" id="1_s01tx"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d1k366i5jjtrk" path="res://textures/plus.svg" id="2_cddgt"]
|
[ext_resource type="Texture2D" uid="uid://d1k366i5jjtrk" path="res://textures/plus.svg" id="2_cddgt"]
|
||||||
|
|
||||||
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_qnc60"]
|
|
||||||
data = PackedVector3Array(-5, 2.5, 5, 5, 2.5, 5, -5, -2.5, 5, 5, 2.5, 5, 5, -2.5, 5, -5, -2.5, 5, 5, 2.5, -5, -5, 2.5, -5, 5, -2.5, -5, -5, 2.5, -5, -5, -2.5, -5, 5, -2.5, -5, 5, 2.5, 5, 5, 2.5, -5, 5, -2.5, 5, 5, 2.5, -5, 5, -2.5, -5, 5, -2.5, 5, -5, 2.5, -5, -5, 2.5, 5, -5, -2.5, -5, -5, 2.5, 5, -5, -2.5, 5, -5, -2.5, -5, 5, 2.5, 5, -5, 2.5, 5, 5, 2.5, -5, -5, 2.5, 5, -5, 2.5, -5, 5, 2.5, -5, -5, -2.5, 5, 5, -2.5, 5, -5, -2.5, -5, 5, -2.5, 5, 5, -2.5, -5, -5, -2.5, -5)
|
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_f1ys8"]
|
|
||||||
transparency = 1
|
|
||||||
albedo_color = Color(1, 1, 1, 0)
|
|
||||||
|
|
||||||
[sub_resource type="BoxMesh" id="BoxMesh_3vjuu"]
|
|
||||||
material = SubResource("StandardMaterial3D_f1ys8")
|
|
||||||
size = Vector3(10, 5, 10)
|
|
||||||
|
|
||||||
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_scykg"]
|
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_scykg"]
|
||||||
data = PackedVector3Array(-5, 2.5, 5, 5, 2.5, 5, -5, -2.5, 5, 5, 2.5, 5, 5, -2.5, 5, -5, -2.5, 5, 5, 2.5, -5, -5, 2.5, -5, 5, -2.5, -5, -5, 2.5, -5, -5, -2.5, -5, 5, -2.5, -5, 5, 2.5, 5, 5, 2.5, -5, 5, -2.5, 5, 5, 2.5, -5, 5, -2.5, -5, 5, -2.5, 5, -5, 2.5, -5, -5, 2.5, 5, -5, -2.5, -5, -5, 2.5, 5, -5, -2.5, 5, -5, -2.5, -5, 5, 2.5, 5, -5, 2.5, 5, 5, 2.5, -5, -5, 2.5, 5, -5, 2.5, -5, 5, 2.5, -5, -5, -2.5, 5, 5, -2.5, 5, -5, -2.5, -5, 5, -2.5, 5, 5, -2.5, -5, -5, -2.5, -5)
|
data = PackedVector3Array(-5, 2.5, 5, 5, 2.5, 5, -5, -2.5, 5, 5, 2.5, 5, 5, -2.5, 5, -5, -2.5, 5, 5, 2.5, -5, -5, 2.5, -5, 5, -2.5, -5, -5, 2.5, -5, -5, -2.5, -5, 5, -2.5, -5, 5, 2.5, 5, 5, 2.5, -5, 5, -2.5, 5, 5, 2.5, -5, 5, -2.5, -5, 5, -2.5, 5, -5, 2.5, -5, -5, 2.5, 5, -5, -2.5, -5, -5, 2.5, 5, -5, -2.5, 5, -5, -2.5, -5, 5, 2.5, 5, -5, 2.5, 5, 5, 2.5, -5, -5, 2.5, 5, -5, 2.5, -5, 5, 2.5, -5, -5, -2.5, 5, 5, -2.5, 5, -5, -2.5, -5, 5, -2.5, 5, 5, -2.5, -5, -5, -2.5, -5)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gkcjk"]
|
||||||
|
transparency = 1
|
||||||
|
albedo_color = Color(0.203922, 0.458824, 0.113725, 0.337255)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_kix7d"]
|
||||||
|
material = SubResource("StandardMaterial3D_gkcjk")
|
||||||
|
size = Vector3(10, 5, 10)
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0knec"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0knec"]
|
||||||
albedo_color = Color(0.203922, 0.458824, 0.113725, 1)
|
albedo_color = Color(0.203922, 0.458824, 0.113725, 1)
|
||||||
|
|
||||||
|
@ -33,14 +30,14 @@ size = Vector3(10, 5, 10)
|
||||||
|
|
||||||
[node name="Tile" type="StaticBody3D"]
|
[node name="Tile" type="StaticBody3D"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2.5, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2.5, 0)
|
||||||
collision_layer = 2
|
collision_layer = 3
|
||||||
script = ExtResource("1_s01tx")
|
script = ExtResource("1_s01tx")
|
||||||
|
|
||||||
[node name="Empty_tile" type="CollisionShape3D" parent="."]
|
[node name="Empty_tile" type="CollisionShape3D" parent="."]
|
||||||
shape = SubResource("ConcavePolygonShape3D_qnc60")
|
shape = SubResource("ConcavePolygonShape3D_scykg")
|
||||||
|
|
||||||
[node name="VisibleMesh" type="MeshInstance3D" parent="Empty_tile"]
|
[node name="VisibleMesh" type="MeshInstance3D" parent="Empty_tile"]
|
||||||
mesh = SubResource("BoxMesh_3vjuu")
|
mesh = SubResource("BoxMesh_kix7d")
|
||||||
skeleton = NodePath("../..")
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
[node name="plus_sprite" type="Sprite3D" parent="Empty_tile"]
|
[node name="plus_sprite" type="Sprite3D" parent="Empty_tile"]
|
||||||
|
@ -62,20 +59,3 @@ shape = SubResource("ConcavePolygonShape3D_scykg")
|
||||||
[node name="VisibleMesh" type="MeshInstance3D" parent="Forest_tile"]
|
[node name="VisibleMesh" type="MeshInstance3D" parent="Forest_tile"]
|
||||||
mesh = SubResource("BoxMesh_341o5")
|
mesh = SubResource("BoxMesh_341o5")
|
||||||
skeleton = NodePath("../..")
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
[node name="ray_north" type="RayCast3D" parent="."]
|
|
||||||
target_position = Vector3(10, 0, 0)
|
|
||||||
collision_mask = 3
|
|
||||||
|
|
||||||
[node name="ray_south" type="RayCast3D" parent="."]
|
|
||||||
target_position = Vector3(-10, 0, 0)
|
|
||||||
collision_mask = 3
|
|
||||||
|
|
||||||
[node name="ray_west" type="RayCast3D" parent="."]
|
|
||||||
target_position = Vector3(0, 0, -10)
|
|
||||||
collision_mask = 3
|
|
||||||
|
|
||||||
[node name="ray_east" type="RayCast3D" parent="."]
|
|
||||||
target_position = Vector3(0, 0, 10)
|
|
||||||
collision_mask = 3
|
|
||||||
collide_with_areas = true
|
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
[gd_scene load_steps=6 format=3 uid="uid://ddnlfxwoeywq0"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/Earth.gd" id="1_u71pd"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b6er1dx11vq1a" path="res://scenes/models/god.tscn" id="2_frpdt"]
|
||||||
|
|
||||||
|
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_01wm3"]
|
||||||
|
|
||||||
|
[sub_resource type="Sky" id="Sky_oeb53"]
|
||||||
|
sky_material = SubResource("ProceduralSkyMaterial_01wm3")
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_4hkk2"]
|
||||||
|
background_mode = 2
|
||||||
|
sky = SubResource("Sky_oeb53")
|
||||||
|
|
||||||
|
[node name="World" type="Node3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.20056, -2.31495, -0.853709)
|
||||||
|
|
||||||
|
[node name="Earth" type="Node3D" parent="."]
|
||||||
|
script = ExtResource("1_u71pd")
|
||||||
|
|
||||||
|
[node name="God" parent="." instance=ExtResource("2_frpdt")]
|
||||||
|
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -2.77222, 0.906321, 0)
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
|
environment = SubResource("Environment_4hkk2")
|
||||||
|
|
||||||
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="WorldEnvironment"]
|
||||||
|
transform = Transform3D(-3.53179e-08, 0.58921, -0.80798, 2.57552e-08, 0.80798, 0.58921, 1, 0, -4.37114e-08, -14.3426, 13.3054, 0)
|
|
@ -1,7 +1,7 @@
|
||||||
[gd_scene load_steps=6 format=3 uid="uid://dh52xle0rfx5r"]
|
[gd_scene load_steps=6 format=3 uid="uid://dh52xle0rfx5r"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scripts/Earth.gd" id="1_u71pd"]
|
[ext_resource type="Script" path="res://scripts/Earth.gd" id="1_u71pd"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b6er1dx11vq1a" path="res://scenes/models/god.tscn" id="2_frpdt"]
|
[ext_resource type="PackedScene" uid="uid://b6er1dx11vq1a" path="res://scenes/models/god.tscn" id="2_pwuqf"]
|
||||||
|
|
||||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_01wm3"]
|
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_01wm3"]
|
||||||
|
|
||||||
|
@ -13,13 +13,12 @@ background_mode = 2
|
||||||
sky = SubResource("Sky_oeb53")
|
sky = SubResource("Sky_oeb53")
|
||||||
|
|
||||||
[node name="World" type="Node3D"]
|
[node name="World" type="Node3D"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.20056, -2.31495, -0.853709)
|
|
||||||
|
|
||||||
[node name="Earth" type="Node3D" parent="."]
|
[node name="Earth" type="Node3D" parent="."]
|
||||||
script = ExtResource("1_u71pd")
|
script = ExtResource("1_u71pd")
|
||||||
|
|
||||||
[node name="God" parent="." instance=ExtResource("2_frpdt")]
|
[node name="God" parent="." instance=ExtResource("2_pwuqf")]
|
||||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -2.77222, 0.906321, 0)
|
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -7.55882, 2.65688, 0)
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
environment = SubResource("Environment_4hkk2")
|
environment = SubResource("Environment_4hkk2")
|
||||||
|
|
|
@ -13,15 +13,17 @@ func _ready():
|
||||||
start_tile.add_to_group("Persistent")
|
start_tile.add_to_group("Persistent")
|
||||||
|
|
||||||
add_child(start_tile);
|
add_child(start_tile);
|
||||||
|
|
||||||
func _physics_process(delta):
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
#func _process(delta):
|
||||||
|
#mark_free_tiles()
|
||||||
|
|
||||||
func mark_free_tiles():
|
func mark_free_tiles():
|
||||||
var tiles = get_children()
|
var tiles = get_children()
|
||||||
for tile in tiles:
|
for tile in tiles:
|
||||||
|
tile.update_tile()
|
||||||
if tile.tile_type == TileType.Empty: continue
|
if tile.tile_type == TileType.Empty: continue
|
||||||
var free_dirs = tile.get_free_dirs_around();
|
var free_dirs = tile.get_free_dirs_around()
|
||||||
for dir in free_dirs:
|
for dir in free_dirs:
|
||||||
var free_tile = tile_exemplar.instantiate()
|
var free_tile = tile_exemplar.instantiate()
|
||||||
free_tile.tile_type = TileType.Empty
|
free_tile.tile_type = TileType.Empty
|
||||||
|
@ -39,3 +41,5 @@ func mark_free_tiles():
|
||||||
pos.z += 10
|
pos.z += 10
|
||||||
free_tile.position = pos;
|
free_tile.position = pos;
|
||||||
free_tile.update_tile()
|
free_tile.update_tile()
|
||||||
|
#print("Created on " + str(pos) + " by " + str(tile.position))
|
||||||
|
#tiles = get_children()
|
||||||
|
|
|
@ -49,13 +49,15 @@ func _physics_process(delta):
|
||||||
creating_tile_type = wrap(creating_tile_type + 1, 0, 3)
|
creating_tile_type = wrap(creating_tile_type + 1, 0, 3)
|
||||||
tile_type_label.text = "Tile type: " + str(TileType.keys()[creating_tile_type])
|
tile_type_label.text = "Tile type: " + str(TileType.keys()[creating_tile_type])
|
||||||
|
|
||||||
if Input.is_action_just_pressed("LMC") and eye_raycast.is_colliding():
|
if Input.is_action_just_pressed("LMC") and eye_raycast.is_colliding() and !get_node("UI/ingame_menu").visible:
|
||||||
var target = eye_raycast.get_collider()
|
var target = eye_raycast.get_collider()
|
||||||
if "TileType" in target:
|
if "TileType" in target:
|
||||||
|
earth.mark_free_tiles()
|
||||||
target.tile_type = creating_tile_type
|
target.tile_type = creating_tile_type
|
||||||
target.update_tile()
|
target.update_tile()
|
||||||
earth.mark_free_tiles()
|
earth.mark_free_tiles()
|
||||||
|
|
||||||
|
|
||||||
if Input.is_action_pressed("run"):
|
if Input.is_action_pressed("run"):
|
||||||
speed = walk * 2
|
speed = walk * 2
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -7,31 +7,50 @@ enum TileType {
|
||||||
}
|
}
|
||||||
|
|
||||||
@export var tile_type: TileType = TileType.Empty;
|
@export var tile_type: TileType = TileType.Empty;
|
||||||
|
var free_sides = {
|
||||||
|
"north": false,
|
||||||
|
"south": false,
|
||||||
|
"west": false,
|
||||||
|
"east": false,
|
||||||
|
}
|
||||||
|
|
||||||
func update_tile():
|
func update_tile():
|
||||||
var children = find_children("*tile");
|
var children = find_children("*tile");
|
||||||
for child in children:
|
for child in children:
|
||||||
if TileType.keys()[tile_type] == child.name.split("_")[0]:
|
if TileType.keys()[tile_type] == child.name.split("_")[0]:
|
||||||
child.visible = true;
|
child.visible = true
|
||||||
else:
|
else:
|
||||||
child.visible = false;
|
child.visible = false
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
update_tile()
|
update_tile()
|
||||||
|
|
||||||
|
func _physics_process(delta):
|
||||||
|
var space_state = get_world_3d().direct_space_state
|
||||||
|
|
||||||
|
var query_north = PhysicsRayQueryParameters3D.create(self.position + Vector3(0, 2.5, 0), self.position + Vector3(10, 2.5, 0))
|
||||||
|
var query_south = PhysicsRayQueryParameters3D.create(self.position + Vector3(0, 2.5, 0), self.position + Vector3(-12, 2.5, 0))
|
||||||
|
var query_west = PhysicsRayQueryParameters3D.create(self.position + Vector3(0, 2.5, 0), self.position + Vector3(0, 2.5, -10))
|
||||||
|
var query_east = PhysicsRayQueryParameters3D.create(self.position + Vector3(0, 2.5, 0), self.position + Vector3(0, 2.5, 10))
|
||||||
|
|
||||||
|
var result_north = space_state.intersect_ray(query_north)
|
||||||
|
var result_south = space_state.intersect_ray(query_south)
|
||||||
|
var result_west = space_state.intersect_ray(query_west)
|
||||||
|
var result_east = space_state.intersect_ray(query_east)
|
||||||
|
free_sides = {
|
||||||
|
"north": result_north == {},
|
||||||
|
"south": result_south == {},
|
||||||
|
"west": result_west == {},
|
||||||
|
"east": result_east == {}
|
||||||
|
}
|
||||||
|
|
||||||
func get_free_dirs_around():
|
func get_free_dirs_around():
|
||||||
var free_tiles_around = []
|
var free_tiles_around = []
|
||||||
if tile_type == TileType.Empty: return free_tiles_around
|
for side in free_sides.keys():
|
||||||
var raycasts = find_children("ray*");
|
if free_sides[side]:
|
||||||
|
free_tiles_around.push_back(side)
|
||||||
for raycast: RayCast3D in raycasts:
|
|
||||||
raycast.force_raycast_update()
|
|
||||||
if !raycast.is_colliding():
|
|
||||||
free_tiles_around.append(raycast.name.split("_")[1])
|
|
||||||
return free_tiles_around
|
return free_tiles_around
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
pass
|
|
||||||
|
|
||||||
func save():
|
func save():
|
||||||
if tile_type == TileType.Empty: return {}
|
if tile_type == TileType.Empty: return {}
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
#visible = false
|
||||||
|
pass
|
||||||
|
|
||||||
func _physics_process(delta):
|
func _physics_process(delta):
|
||||||
if Input.is_action_just_pressed("ingame_menu"):
|
if Input.is_action_just_pressed("ingame_menu"):
|
||||||
self.visible = !self.visible
|
self.visible = !self.visible
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
extends Button
|
||||||
|
|
||||||
|
@onready var button = $"."
|
||||||
|
@onready var main_menu = $".."
|
||||||
|
var world_scene = preload("res://scenes/world.tscn")
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
enable()
|
||||||
|
|
||||||
|
func enable():
|
||||||
|
$".".pressed.connect(self._button_pressed)
|
||||||
|
|
||||||
|
func disable():
|
||||||
|
$".".pressed.disconnect()
|
||||||
|
|
||||||
|
func _button_pressed():
|
||||||
|
if ("quit" in name):
|
||||||
|
get_tree().quit()
|
||||||
|
elif ("new_world" in name):
|
||||||
|
#get_tree().change_scene_to_packed(world_scene)
|
||||||
|
var world_scene_instance = world_scene.instantiate();
|
||||||
|
world_scene_instance.name = "world"
|
||||||
|
var to_remove = $"/root/Main menu"
|
||||||
|
get_tree().root.add_child(world_scene_instance)
|
||||||
|
get_tree().root.remove_child(to_remove)
|
||||||
|
World.new_world()
|
||||||
|
elif ("load_world" in name):
|
||||||
|
var world_scene_instance = world_scene.instantiate();
|
||||||
|
world_scene_instance.name = "world"
|
||||||
|
var to_remove = $"/root/Main menu"
|
||||||
|
get_tree().root.add_child(world_scene_instance)
|
||||||
|
get_tree().root.remove_child(to_remove)
|
||||||
|
World.load_world("world")
|
||||||
|
elif ("save_world" in name):
|
||||||
|
World.save_world()
|
||||||
|
elif ("save_exit" in name):
|
||||||
|
World.save_world()
|
||||||
|
#get_tree().change_scene_to_file("res://scenes/UI/main_menu.tscn")
|
||||||
|
var to_remove = $"/root/world"
|
||||||
|
get_tree().root.add_child(load("res://scenes/UI/main_menu.tscn").instantiate())
|
||||||
|
get_tree().root.remove_child(to_remove)
|
||||||
|
elif ("exit_nosave" in name):
|
||||||
|
#get_tree().change_scene_to_file("res://scenes/UI/main_menu.tscn")
|
||||||
|
var to_remove = $"/root/world"
|
||||||
|
get_tree().root.add_child(load("res://scenes/UI/main_menu.tscn").instantiate())
|
||||||
|
get_tree().root.remove_child(to_remove)
|
|
@ -5,11 +5,7 @@ extends Button
|
||||||
var world_scene = preload("res://scenes/world.tscn")
|
var world_scene = preload("res://scenes/world.tscn")
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
print("ready")
|
enable()
|
||||||
enable()
|
|
||||||
|
|
||||||
func test():
|
|
||||||
print("test")
|
|
||||||
|
|
||||||
func enable():
|
func enable():
|
||||||
$".".pressed.connect(self._button_pressed)
|
$".".pressed.connect(self._button_pressed)
|
||||||
|
@ -24,19 +20,22 @@ func _button_pressed():
|
||||||
get_tree().change_scene_to_packed(world_scene)
|
get_tree().change_scene_to_packed(world_scene)
|
||||||
World.new_world()
|
World.new_world()
|
||||||
elif ("load_world" in name):
|
elif ("load_world" in name):
|
||||||
#assert(get_tree().change_scene_to_packed(world_scene) == OK)
|
|
||||||
#get_tree().change_scene_to_packed(world_scene)
|
|
||||||
var world_scene_instance = world_scene.instantiate();
|
var world_scene_instance = world_scene.instantiate();
|
||||||
world_scene_instance.name = "world"
|
world_scene_instance.name = "world"
|
||||||
var a = $"/root/Main menu"
|
var to_remove = $"/root/Main menu"
|
||||||
print(str(a))
|
get_tree().root.add_child(world_scene_instance)
|
||||||
get_tree().root.add_child(world_scene_instance)
|
get_tree().root.remove_child(to_remove)
|
||||||
get_tree().root.remove_child(a)
|
|
||||||
World.load_world("world")
|
World.load_world("world")
|
||||||
elif ("save_world" in name):
|
elif ("save_world" in name):
|
||||||
World.save_world()
|
World.save_world()
|
||||||
elif ("save_exit" in name):
|
elif ("save_exit" in name):
|
||||||
World.save_world()
|
World.save_world()
|
||||||
get_tree().change_scene_to_file("res://scenes/UI/main_menu.tscn")
|
#get_tree().change_scene_to_file("res://scenes/UI/main_menu.tscn")
|
||||||
|
var to_remove = $"/root/world"
|
||||||
|
get_tree().root.add_child(load("res://scenes/UI/main_menu.tscn").instantiate())
|
||||||
|
get_tree().root.remove_child(to_remove)
|
||||||
elif ("exit_nosave" in name):
|
elif ("exit_nosave" in name):
|
||||||
get_tree().change_scene_to_file("res://scenes/UI/main_menu.tscn")
|
#get_tree().change_scene_to_file("res://scenes/UI/main_menu.tscn")
|
||||||
|
var to_remove = $"/root/world"
|
||||||
|
get_tree().root.add_child(load("res://scenes/UI/main_menu.tscn").instantiate())
|
||||||
|
get_tree().root.remove_child(to_remove)
|
||||||
|
|
|
@ -86,23 +86,26 @@ func load_world(save_name):
|
||||||
|
|
||||||
# Get the data from the JSON object
|
# Get the data from the JSON object
|
||||||
var node_data = json.get_data()
|
var node_data = json.get_data()
|
||||||
|
|
||||||
# Firstly, we need to create the object and add it to the tree and set its position.
|
# Firstly, we need to create the object and add it to the tree and set its position.
|
||||||
#var new_object = load(node_data["filename"]).instantiate()
|
#var new_object = load(node_data["filename"]).instantiate()
|
||||||
var new_object
|
var new_object
|
||||||
match node_data["node"]:
|
match node_data["node"]:
|
||||||
"tile":
|
"tile":
|
||||||
new_object = load("res://scenes/models/tile.tscn").instantiate()
|
new_object = preload("res://scenes/models/tile.tscn").instantiate()
|
||||||
#print(str(get_tree().root.get_node("world/Earth")))
|
|
||||||
get_tree().root.get_node("world/Earth").add_child(new_object)
|
get_tree().root.get_node("world/Earth").add_child(new_object)
|
||||||
|
|
||||||
new_object.position = Vector3(node_data["pos_x"], node_data["pos_y"], node_data["pos_z"])
|
new_object.position = Vector3(node_data["pos_x"], node_data["pos_y"], node_data["pos_z"])
|
||||||
|
new_object.add_to_group("Persistent")
|
||||||
# Now we set the remaining variables.
|
# Now we set the remaining variables.
|
||||||
for i in node_data.keys():
|
for i in node_data.keys():
|
||||||
if i == "node" or "pos" in i:
|
if i == "node" or "pos" in i:
|
||||||
continue
|
continue
|
||||||
new_object.set(i, node_data[i])
|
new_object.set(i, node_data[i])
|
||||||
new_object.call("update_tile")
|
new_object.update_tile()
|
||||||
get_tree().root.get_node("world/Earth").call("mark_free_tiles")
|
#get_tree().root.get_node("world/Earth").mark_free_tiles()
|
||||||
|
|
||||||
|
#await get_tree().create_timer(1).timeout
|
||||||
|
|
||||||
|
#get_tree().root.get_node("world/Earth").call("mark_free_tiles")
|
||||||
|
|
||||||
|
# s
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue