This commit is contained in:
WangXiang
2025-12-22 18:57:51 +08:00
commit 6119faf53e
159 changed files with 19162 additions and 0 deletions

33
Scenes/Chair.tscn Normal file
View File

@@ -0,0 +1,33 @@
[gd_scene load_steps=5 format=3 uid="uid://b2x8q6y301w4"]
[ext_resource type="Script" path="res://Scripts/Chair.gd" id="1_script"]
[ext_resource type="Texture2D" uid="uid://upload_chair_img" path="res://Assets/Chair.png" id="2_sprite"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_phys"]
size = Vector2(30, 10)
[sub_resource type="CircleShape2D" id="CircleShape2D_detect"]
radius = 40.0
[node name="Chair" type="StaticBody2D"]
collision_layer = 4
collision_mask = 1
script = ExtResource("1_script")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("2_sprite")
offset = Vector2(0, -10)
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, -5)
shape = SubResource("RectangleShape2D_phys")
[node name="InteractionArea" type="Area2D" parent="."]
collision_layer = 0
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="InteractionArea"]
shape = SubResource("CircleShape2D_detect")
[node name="SitMarker" type="Marker2D" parent="."]
position = Vector2(0, -15)

50
Scenes/NPCMayor.tscn Normal file
View File

@@ -0,0 +1,50 @@
[gd_scene load_steps=6 format=3 uid="uid://b8q7x5y201w3"]
[ext_resource type="Script" uid="uid://5tvkhbf0237e" path="res://Scripts/NPCMayor.gd" id="1_script"]
[ext_resource type="Texture2D" uid="uid://bk3hu8sfdnvam" path="res://Assets/MayorWhale.png" id="2_sprite"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_mayor"]
size = Vector2(50, 50)
[sub_resource type="Animation" id="Animation_idle"]
resource_name = "idle"
length = 0.8
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.2, 0.4, 0.6),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 1]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_mayor"]
_data = {
&"idle": SubResource("Animation_idle")
}
[node name="NPCMayor" type="CharacterBody2D"]
position = Vector2(1, 0)
collision_layer = 3
collision_mask = 3
script = ExtResource("1_script")
[node name="Sprite2D" type="Sprite2D" parent="."]
scale = Vector2(0.5, 0.5)
texture = ExtResource("2_sprite")
hframes = 3
vframes = 4
frame = 1
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_mayor")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_mayor")
}

19
Scenes/NoticeBoard.tscn Normal file
View File

@@ -0,0 +1,19 @@
[gd_scene load_steps=4 format=3 uid="uid://rdmrm7j4iokr"]
[ext_resource type="Script" path="res://Scripts/NoticeBoard.gd" id="1_script"]
[ext_resource type="Texture2D" path="res://Assets/NoticeBoard.png" id="2_sprite"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_nb"]
size = Vector2(48, 20)
[node name="NoticeBoard" type="StaticBody2D"]
script = ExtResource("1_script")
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(0, -16)
scale = Vector2(0.5, 0.5)
texture = ExtResource("2_sprite")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, -5)
shape = SubResource("RectangleShape2D_nb")

48
Scenes/Player.tscn Normal file
View File

@@ -0,0 +1,48 @@
[gd_scene load_steps=4 format=3 uid="uid://6gpuqttnllfc"]
[ext_resource type="Script" uid="uid://c2oq8ax5dl7s2" path="res://Scripts/Player.gd" id="1_script"]
[ext_resource type="Texture2D" uid="uid://cdi4mj5buwmyb" path="res://Assets/WhalePlayer.png" id="2_whale"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_kyqiw"]
[node name="Player" type="CharacterBody2D"]
z_index = 1
collision_layer = 2
script = ExtResource("1_script")
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(0, -1)
scale = Vector2(0.266, 0.278)
texture = ExtResource("2_whale")
offset = Vector2(7, 0)
hframes = 3
vframes = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 8)
shape = SubResource("RectangleShape2D_kyqiw")
[node name="RayCast2D" type="RayCast2D" parent="."]
target_position = Vector2(0, 24)
collide_with_areas = true
[node name="NameLabel" type="Label" parent="."]
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -60.0
offset_top = -50.0
offset_right = 60.0
offset_bottom = -25.0
grow_horizontal = 2
grow_vertical = 0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 12
text = "Player"
horizontal_alignment = 1
vertical_alignment = 1

29
Scenes/Room.tscn Normal file

File diff suppressed because one or more lines are too long

590
Scenes/RoomTileset.tres Normal file
View File

@@ -0,0 +1,590 @@
[gd_resource type="TileSet" load_steps=3 format=3 uid="uid://eokkuj4lhid2"]
[ext_resource type="Texture2D" uid="uid://suc4kwbul7m3" path="res://Assets/ground2-removebg-preview.png" id="2_3kd4h"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_26wvp"]
texture = ExtResource("2_3kd4h")
texture_region_size = Vector2i(32, 32)
4:0/0 = 0
5:0/0 = 0
5:1/0 = 0
6:2/0 = 0
7:2/0 = 0
7:3/0 = 0
6:3/0 = 0
5:3/0 = 0
4:4/0 = 0
4:4/0/terrain_set = 0
4:4/0/terrain = 0
4:4/0/terrains_peering_bit/right_side = 0
4:4/0/terrains_peering_bit/bottom_right_corner = 0
4:4/0/terrains_peering_bit/bottom_side = 0
4:4/0/terrains_peering_bit/bottom_left_corner = 0
4:4/0/terrains_peering_bit/left_side = 0
4:4/0/terrains_peering_bit/top_left_corner = 0
4:4/0/terrains_peering_bit/top_side = 0
4:4/0/terrains_peering_bit/top_right_corner = 0
3:4/0 = 0
2:4/0 = 0
1:3/0 = 0
0:3/0 = 0
0:2/0 = 0
0:1/0 = 0
1:1/0 = 0
1:0/0 = 0
2:0/0 = 0
3:0/0 = 0
6:0/0 = 0
7:0/0 = 0
8:0/0 = 0
8:1/0 = 0
9:1/0 = 0
9:2/0 = 0
9:3/0 = 0
8:3/0 = 0
8:4/0 = 0
8:4/0/terrain_set = 0
8:4/0/terrain = 0
8:4/0/terrains_peering_bit/right_side = 0
8:4/0/terrains_peering_bit/bottom_right_corner = 0
8:4/0/terrains_peering_bit/bottom_side = 0
8:4/0/terrains_peering_bit/bottom_left_corner = 0
8:4/0/terrains_peering_bit/left_side = 0
8:4/0/terrains_peering_bit/top_left_corner = 0
8:4/0/terrains_peering_bit/top_side = 0
8:4/0/terrains_peering_bit/top_right_corner = 0
7:4/0 = 0
7:4/0/terrain_set = 0
7:4/0/terrain = 0
7:4/0/terrains_peering_bit/right_side = 0
7:4/0/terrains_peering_bit/bottom_right_corner = 0
7:4/0/terrains_peering_bit/bottom_side = 0
7:4/0/terrains_peering_bit/bottom_left_corner = 0
7:4/0/terrains_peering_bit/left_side = 0
7:4/0/terrains_peering_bit/top_left_corner = 0
7:4/0/terrains_peering_bit/top_side = 0
7:4/0/terrains_peering_bit/top_right_corner = 0
6:4/0 = 0
6:4/0/terrain_set = 0
6:4/0/terrain = 0
6:4/0/terrains_peering_bit/right_side = 0
6:4/0/terrains_peering_bit/bottom_right_corner = 0
6:4/0/terrains_peering_bit/bottom_side = 0
6:4/0/terrains_peering_bit/bottom_left_corner = 0
6:4/0/terrains_peering_bit/left_side = 0
6:4/0/terrains_peering_bit/top_left_corner = 0
6:4/0/terrains_peering_bit/top_side = 0
6:4/0/terrains_peering_bit/top_right_corner = 0
5:4/0 = 0
5:4/0/terrain_set = 0
5:4/0/terrain = 0
5:4/0/terrains_peering_bit/right_side = 0
5:4/0/terrains_peering_bit/bottom_right_corner = 0
5:4/0/terrains_peering_bit/bottom_side = 0
5:4/0/terrains_peering_bit/bottom_left_corner = 0
5:4/0/terrains_peering_bit/left_side = 0
5:4/0/terrains_peering_bit/top_left_corner = 0
5:4/0/terrains_peering_bit/top_side = 0
5:4/0/terrains_peering_bit/top_right_corner = 0
3:3/0 = 0
2:2/0 = 0
2:1/0 = 0
3:1/0 = 0
4:1/0 = 0
5:2/0 = 0
4:2/0 = 0
3:2/0 = 0
4:3/0 = 0
2:3/0 = 0
1:2/0 = 0
1:4/0 = 0
0:4/0 = 0
9:4/0 = 0
10:4/0 = 0
11:4/0 = 0
12:4/0 = 0
13:4/0 = 0
13:3/0 = 0
13:2/0 = 0
13:1/0 = 0
12:1/0 = 0
11:1/0 = 0
10:1/0 = 0
8:2/0 = 0
6:1/0 = 0
7:1/0 = 0
14:1/0 = 0
14:0/0 = 0
13:0/0 = 0
12:0/0 = 0
11:0/0 = 0
10:0/0 = 0
9:0/0 = 0
14:2/0 = 0
14:3/0 = 0
12:3/0 = 0
11:3/0 = 0
11:2/0 = 0
10:2/0 = 0
10:3/0 = 0
12:2/0 = 0
14:4/0 = 0
13:5/0 = 0
12:5/0 = 0
11:5/0 = 0
10:5/0 = 0
9:5/0 = 0
8:5/0 = 0
8:5/0/terrain_set = 0
8:5/0/terrain = 0
8:5/0/terrains_peering_bit/right_side = 0
8:5/0/terrains_peering_bit/bottom_right_corner = 0
8:5/0/terrains_peering_bit/bottom_side = 0
8:5/0/terrains_peering_bit/bottom_left_corner = 0
8:5/0/terrains_peering_bit/left_side = 0
8:5/0/terrains_peering_bit/top_left_corner = 0
8:5/0/terrains_peering_bit/top_side = 0
8:5/0/terrains_peering_bit/top_right_corner = 0
7:5/0 = 0
7:5/0/terrain_set = 0
7:5/0/terrain = 0
7:5/0/terrains_peering_bit/right_side = 0
7:5/0/terrains_peering_bit/bottom_right_corner = 0
7:5/0/terrains_peering_bit/bottom_side = 0
7:5/0/terrains_peering_bit/bottom_left_corner = 0
7:5/0/terrains_peering_bit/left_side = 0
7:5/0/terrains_peering_bit/top_left_corner = 0
7:5/0/terrains_peering_bit/top_side = 0
7:5/0/terrains_peering_bit/top_right_corner = 0
6:5/0 = 0
6:5/0/terrain_set = 0
6:5/0/terrain = 0
6:5/0/terrains_peering_bit/right_side = 0
6:5/0/terrains_peering_bit/bottom_right_corner = 0
6:5/0/terrains_peering_bit/bottom_side = 0
6:5/0/terrains_peering_bit/bottom_left_corner = 0
6:5/0/terrains_peering_bit/left_side = 0
6:5/0/terrains_peering_bit/top_left_corner = 0
6:5/0/terrains_peering_bit/top_side = 0
6:5/0/terrains_peering_bit/top_right_corner = 0
5:5/0 = 0
5:5/0/terrain_set = 0
5:5/0/terrain = 0
5:5/0/terrains_peering_bit/right_side = 0
5:5/0/terrains_peering_bit/bottom_right_corner = 0
5:5/0/terrains_peering_bit/bottom_side = 0
5:5/0/terrains_peering_bit/bottom_left_corner = 0
5:5/0/terrains_peering_bit/left_side = 0
5:5/0/terrains_peering_bit/top_left_corner = 0
5:5/0/terrains_peering_bit/top_side = 0
5:5/0/terrains_peering_bit/top_right_corner = 0
0:0/0 = 0
1:5/0 = 0
1:6/0 = 0
1:7/0 = 0
1:8/0 = 0
1:9/0 = 0
1:10/0 = 0
0:8/0 = 0
0:7/0 = 0
0:6/0 = 0
0:5/0 = 0
2:5/0 = 0
3:5/0 = 0
4:5/0 = 0
4:5/0/terrain_set = 0
4:5/0/terrain = 0
4:5/0/terrains_peering_bit/right_side = 0
4:5/0/terrains_peering_bit/bottom_right_corner = 0
4:5/0/terrains_peering_bit/bottom_side = 0
4:5/0/terrains_peering_bit/bottom_left_corner = 0
4:5/0/terrains_peering_bit/left_side = 0
4:5/0/terrains_peering_bit/top_left_corner = 0
4:5/0/terrains_peering_bit/top_side = 0
4:5/0/terrains_peering_bit/top_right_corner = 0
5:6/0 = 0
5:6/0/terrain_set = 0
5:6/0/terrain = 0
5:6/0/terrains_peering_bit/right_side = 0
5:6/0/terrains_peering_bit/bottom_right_corner = 0
5:6/0/terrains_peering_bit/bottom_side = 0
5:6/0/terrains_peering_bit/bottom_left_corner = 0
5:6/0/terrains_peering_bit/left_side = 0
5:6/0/terrains_peering_bit/top_left_corner = 0
5:6/0/terrains_peering_bit/top_side = 0
5:6/0/terrains_peering_bit/top_right_corner = 0
4:6/0 = 0
4:6/0/terrain_set = 0
4:6/0/terrain = 0
4:6/0/terrains_peering_bit/right_side = 0
4:6/0/terrains_peering_bit/bottom_right_corner = 0
4:6/0/terrains_peering_bit/bottom_side = 0
4:6/0/terrains_peering_bit/bottom_left_corner = 0
4:6/0/terrains_peering_bit/left_side = 0
4:6/0/terrains_peering_bit/top_left_corner = 0
4:6/0/terrains_peering_bit/top_side = 0
4:6/0/terrains_peering_bit/top_right_corner = 0
4:7/0 = 0
3:7/0 = 0
3:8/0 = 0
3:8/0/terrain_set = 0
3:8/0/terrain = 0
3:8/0/terrains_peering_bit/right_side = 0
3:8/0/terrains_peering_bit/bottom_right_corner = 0
3:8/0/terrains_peering_bit/bottom_side = 0
3:8/0/terrains_peering_bit/bottom_left_corner = 0
3:8/0/terrains_peering_bit/left_side = 0
3:8/0/terrains_peering_bit/top_left_corner = 0
3:8/0/terrains_peering_bit/top_side = 0
3:8/0/terrains_peering_bit/top_right_corner = 0
2:8/0 = 0
2:9/0 = 0
2:7/0 = 0
2:6/0 = 0
3:6/0 = 0
6:6/0 = 0
6:6/0/terrain_set = 0
6:6/0/terrain = 0
6:6/0/terrains_peering_bit/right_side = 0
6:6/0/terrains_peering_bit/bottom_right_corner = 0
6:6/0/terrains_peering_bit/bottom_side = 0
6:6/0/terrains_peering_bit/bottom_left_corner = 0
6:6/0/terrains_peering_bit/left_side = 0
6:6/0/terrains_peering_bit/top_left_corner = 0
6:6/0/terrains_peering_bit/top_side = 0
6:6/0/terrains_peering_bit/top_right_corner = 0
7:6/0 = 0
7:6/0/terrain_set = 0
7:6/0/terrain = 0
7:6/0/terrains_peering_bit/right_side = 0
7:6/0/terrains_peering_bit/bottom_right_corner = 0
7:6/0/terrains_peering_bit/bottom_side = 0
7:6/0/terrains_peering_bit/bottom_left_corner = 0
7:6/0/terrains_peering_bit/left_side = 0
7:6/0/terrains_peering_bit/top_left_corner = 0
7:6/0/terrains_peering_bit/top_side = 0
7:6/0/terrains_peering_bit/top_right_corner = 0
14:5/0 = 0
13:6/0 = 0
13:7/0 = 0
12:7/0 = 0
12:8/0 = 0
12:9/0 = 0
12:10/0 = 0
11:9/0 = 0
10:8/0 = 0
9:7/0 = 0
8:7/0 = 0
7:7/0 = 0
6:7/0 = 0
5:8/0 = 0
5:8/0/terrain_set = 0
5:8/0/terrain = 0
5:8/0/terrains_peering_bit/right_side = 0
5:8/0/terrains_peering_bit/bottom_right_corner = 0
5:8/0/terrains_peering_bit/bottom_side = 0
5:8/0/terrains_peering_bit/bottom_left_corner = 0
5:8/0/terrains_peering_bit/left_side = 0
5:8/0/terrains_peering_bit/top_left_corner = 0
5:8/0/terrains_peering_bit/top_side = 0
5:8/0/terrains_peering_bit/top_right_corner = 0
4:8/0 = 0
4:8/0/terrain_set = 0
4:8/0/terrain = 0
4:8/0/terrains_peering_bit/right_side = 0
4:8/0/terrains_peering_bit/bottom_right_corner = 0
4:8/0/terrains_peering_bit/bottom_side = 0
4:8/0/terrains_peering_bit/bottom_left_corner = 0
4:8/0/terrains_peering_bit/left_side = 0
4:8/0/terrains_peering_bit/top_left_corner = 0
4:8/0/terrains_peering_bit/top_side = 0
4:8/0/terrains_peering_bit/top_right_corner = 0
6:8/0 = 0
6:8/0/terrain_set = 0
6:8/0/terrain = 0
6:8/0/terrains_peering_bit/right_side = 0
6:8/0/terrains_peering_bit/bottom_right_corner = 0
6:8/0/terrains_peering_bit/bottom_side = 0
6:8/0/terrains_peering_bit/bottom_left_corner = 0
6:8/0/terrains_peering_bit/left_side = 0
6:8/0/terrains_peering_bit/top_left_corner = 0
6:8/0/terrains_peering_bit/top_side = 0
6:8/0/terrains_peering_bit/top_right_corner = 0
7:8/0 = 0
7:8/0/terrain_set = 0
7:8/0/terrain = 0
7:8/0/terrains_peering_bit/right_side = 0
7:8/0/terrains_peering_bit/bottom_right_corner = 0
7:8/0/terrains_peering_bit/bottom_side = 0
7:8/0/terrains_peering_bit/bottom_left_corner = 0
7:8/0/terrains_peering_bit/left_side = 0
7:8/0/terrains_peering_bit/top_left_corner = 0
7:8/0/terrains_peering_bit/top_side = 0
7:8/0/terrains_peering_bit/top_right_corner = 0
8:8/0 = 0
9:8/0 = 0
11:8/0 = 0
13:8/0 = 0
14:8/0 = 0
12:6/0 = 0
11:6/0 = 0
10:6/0 = 0
9:6/0 = 0
8:6/0 = 0
8:6/0/terrain_set = 0
8:6/0/terrain = 0
8:6/0/terrains_peering_bit/right_side = 0
8:6/0/terrains_peering_bit/bottom_right_corner = 0
8:6/0/terrains_peering_bit/bottom_side = 0
8:6/0/terrains_peering_bit/bottom_left_corner = 0
8:6/0/terrains_peering_bit/left_side = 0
8:6/0/terrains_peering_bit/top_left_corner = 0
8:6/0/terrains_peering_bit/top_side = 0
8:6/0/terrains_peering_bit/top_right_corner = 0
5:7/0 = 0
10:7/0 = 0
11:7/0 = 0
14:7/0 = 0
14:6/0 = 0
14:9/0 = 0
14:10/0 = 0
13:10/0 = 0
13:9/0 = 0
13:11/0 = 0
12:11/0 = 0
11:10/0 = 0
10:10/0 = 0
9:10/0 = 0
8:10/0 = 0
7:10/0 = 0
7:10/0/terrain_set = 0
7:10/0/terrain = 0
7:10/0/terrains_peering_bit/right_side = 0
7:10/0/terrains_peering_bit/bottom_right_corner = 0
7:10/0/terrains_peering_bit/bottom_side = 0
7:10/0/terrains_peering_bit/bottom_left_corner = 0
7:10/0/terrains_peering_bit/left_side = 0
7:10/0/terrains_peering_bit/top_left_corner = 0
7:10/0/terrains_peering_bit/top_side = 0
7:10/0/terrains_peering_bit/top_right_corner = 0
6:10/0 = 0
6:10/0/terrain_set = 0
6:10/0/terrain = 0
6:10/0/terrains_peering_bit/right_side = 0
6:10/0/terrains_peering_bit/bottom_right_corner = 0
6:10/0/terrains_peering_bit/bottom_side = 0
6:10/0/terrains_peering_bit/bottom_left_corner = 0
6:10/0/terrains_peering_bit/left_side = 0
6:10/0/terrains_peering_bit/top_left_corner = 0
6:10/0/terrains_peering_bit/top_side = 0
6:10/0/terrains_peering_bit/top_right_corner = 0
5:10/0 = 0
5:10/0/terrain_set = 0
5:10/0/terrain = 0
5:10/0/terrains_peering_bit/right_side = 0
5:10/0/terrains_peering_bit/bottom_right_corner = 0
5:10/0/terrains_peering_bit/bottom_side = 0
5:10/0/terrains_peering_bit/bottom_left_corner = 0
5:10/0/terrains_peering_bit/left_side = 0
5:10/0/terrains_peering_bit/top_left_corner = 0
5:10/0/terrains_peering_bit/top_side = 0
5:10/0/terrains_peering_bit/top_right_corner = 0
4:10/0 = 0
4:10/0/terrain_set = 0
4:10/0/terrain = 0
4:10/0/terrains_peering_bit/right_side = 0
4:10/0/terrains_peering_bit/bottom_right_corner = 0
4:10/0/terrains_peering_bit/bottom_side = 0
4:10/0/terrains_peering_bit/bottom_left_corner = 0
4:10/0/terrains_peering_bit/left_side = 0
4:10/0/terrains_peering_bit/top_left_corner = 0
4:10/0/terrains_peering_bit/top_side = 0
4:10/0/terrains_peering_bit/top_right_corner = 0
3:11/0 = 0
3:11/0/terrain_set = 0
3:11/0/terrain = 0
3:11/0/terrains_peering_bit/right_side = 0
3:11/0/terrains_peering_bit/bottom_right_corner = 0
3:11/0/terrains_peering_bit/bottom_side = 0
3:11/0/terrains_peering_bit/bottom_left_corner = 0
3:11/0/terrains_peering_bit/left_side = 0
3:11/0/terrains_peering_bit/top_left_corner = 0
3:11/0/terrains_peering_bit/top_side = 0
3:11/0/terrains_peering_bit/top_right_corner = 0
2:11/0 = 0
1:11/0 = 0
3:9/0 = 0
3:9/0/terrain_set = 0
3:9/0/terrain = 0
3:9/0/terrains_peering_bit/right_side = 0
3:9/0/terrains_peering_bit/bottom_right_corner = 0
3:9/0/terrains_peering_bit/bottom_side = 0
3:9/0/terrains_peering_bit/bottom_left_corner = 0
3:9/0/terrains_peering_bit/left_side = 0
3:9/0/terrains_peering_bit/top_left_corner = 0
3:9/0/terrains_peering_bit/top_side = 0
3:9/0/terrains_peering_bit/top_right_corner = 0
4:9/0 = 0
4:9/0/terrain_set = 0
4:9/0/terrain = 0
4:9/0/terrains_peering_bit/right_side = 0
4:9/0/terrains_peering_bit/bottom_right_corner = 0
4:9/0/terrains_peering_bit/bottom_side = 0
4:9/0/terrains_peering_bit/bottom_left_corner = 0
4:9/0/terrains_peering_bit/left_side = 0
4:9/0/terrains_peering_bit/top_left_corner = 0
4:9/0/terrains_peering_bit/top_side = 0
4:9/0/terrains_peering_bit/top_right_corner = 0
5:9/0 = 0
5:9/0/terrain_set = 0
5:9/0/terrain = 0
5:9/0/terrains_peering_bit/right_side = 0
5:9/0/terrains_peering_bit/bottom_right_corner = 0
5:9/0/terrains_peering_bit/bottom_side = 0
5:9/0/terrains_peering_bit/bottom_left_corner = 0
5:9/0/terrains_peering_bit/left_side = 0
5:9/0/terrains_peering_bit/top_left_corner = 0
5:9/0/terrains_peering_bit/top_side = 0
5:9/0/terrains_peering_bit/top_right_corner = 0
6:9/0 = 0
6:9/0/terrain_set = 0
6:9/0/terrain = 0
6:9/0/terrains_peering_bit/right_side = 0
6:9/0/terrains_peering_bit/bottom_right_corner = 0
6:9/0/terrains_peering_bit/bottom_side = 0
6:9/0/terrains_peering_bit/bottom_left_corner = 0
6:9/0/terrains_peering_bit/left_side = 0
6:9/0/terrains_peering_bit/top_left_corner = 0
6:9/0/terrains_peering_bit/top_side = 0
6:9/0/terrains_peering_bit/top_right_corner = 0
7:9/0 = 0
7:9/0/terrain_set = 0
7:9/0/terrain = 0
7:9/0/terrains_peering_bit/right_side = 0
7:9/0/terrains_peering_bit/bottom_right_corner = 0
7:9/0/terrains_peering_bit/bottom_side = 0
7:9/0/terrains_peering_bit/bottom_left_corner = 0
7:9/0/terrains_peering_bit/left_side = 0
7:9/0/terrains_peering_bit/top_left_corner = 0
7:9/0/terrains_peering_bit/top_side = 0
7:9/0/terrains_peering_bit/top_right_corner = 0
8:9/0 = 0
3:10/0 = 0
3:10/0/terrain_set = 0
3:10/0/terrain = 0
3:10/0/terrains_peering_bit/right_side = 0
3:10/0/terrains_peering_bit/bottom_right_corner = 0
3:10/0/terrains_peering_bit/bottom_side = 0
3:10/0/terrains_peering_bit/bottom_left_corner = 0
3:10/0/terrains_peering_bit/left_side = 0
3:10/0/terrains_peering_bit/top_left_corner = 0
3:10/0/terrains_peering_bit/top_side = 0
3:10/0/terrains_peering_bit/top_right_corner = 0
2:10/0 = 0
0:10/0 = 0
0:9/0 = 0
0:11/0 = 0
0:12/0 = 0
0:13/0 = 0
0:14/0 = 0
1:14/0 = 0
2:13/0 = 0
3:13/0 = 0
4:12/0 = 0
5:12/0 = 0
6:11/0 = 0
6:11/0/terrain_set = 0
6:11/0/terrain = 0
6:11/0/terrains_peering_bit/right_side = 0
6:11/0/terrains_peering_bit/bottom_right_corner = 0
6:11/0/terrains_peering_bit/bottom_side = 0
6:11/0/terrains_peering_bit/bottom_left_corner = 0
6:11/0/terrains_peering_bit/left_side = 0
6:11/0/terrains_peering_bit/top_left_corner = 0
6:11/0/terrains_peering_bit/top_side = 0
6:11/0/terrains_peering_bit/top_right_corner = 0
10:9/0 = 0
9:9/0 = 0
7:11/0 = 0
7:11/0/terrain_set = 0
7:11/0/terrain = 0
7:11/0/terrains_peering_bit/right_side = 0
7:11/0/terrains_peering_bit/bottom_right_corner = 0
7:11/0/terrains_peering_bit/bottom_side = 0
7:11/0/terrains_peering_bit/bottom_left_corner = 0
7:11/0/terrains_peering_bit/left_side = 0
7:11/0/terrains_peering_bit/top_left_corner = 0
7:11/0/terrains_peering_bit/top_side = 0
7:11/0/terrains_peering_bit/top_right_corner = 0
5:11/0 = 0
5:11/0/terrain_set = 0
5:11/0/terrain = 0
5:11/0/terrains_peering_bit/right_side = 0
5:11/0/terrains_peering_bit/bottom_right_corner = 0
5:11/0/terrains_peering_bit/bottom_side = 0
5:11/0/terrains_peering_bit/bottom_left_corner = 0
5:11/0/terrains_peering_bit/left_side = 0
5:11/0/terrains_peering_bit/top_left_corner = 0
5:11/0/terrains_peering_bit/top_side = 0
5:11/0/terrains_peering_bit/top_right_corner = 0
3:12/0 = 0
2:12/0 = 0
1:12/0 = 0
6:12/0 = 0
7:13/0 = 0
8:13/0 = 0
9:13/0 = 0
10:13/0 = 0
11:12/0 = 0
11:11/0 = 0
10:11/0 = 0
9:12/0 = 0
8:12/0 = 0
7:12/0 = 0
9:11/0 = 0
8:11/0 = 0
4:11/0 = 0
4:11/0/terrain_set = 0
4:11/0/terrain = 0
4:11/0/terrains_peering_bit/right_side = 0
4:11/0/terrains_peering_bit/bottom_right_corner = 0
4:11/0/terrains_peering_bit/bottom_side = 0
4:11/0/terrains_peering_bit/bottom_left_corner = 0
4:11/0/terrains_peering_bit/left_side = 0
4:11/0/terrains_peering_bit/top_left_corner = 0
4:11/0/terrains_peering_bit/top_side = 0
4:11/0/terrains_peering_bit/top_right_corner = 0
1:13/0 = 0
3:14/0 = 0
4:14/0 = 0
5:14/0 = 0
6:14/0 = 0
7:14/0 = 0
8:14/0 = 0
9:14/0 = 0
11:13/0 = 0
12:13/0 = 0
13:13/0 = 0
13:12/0 = 0
12:12/0 = 0
10:12/0 = 0
6:13/0 = 0
5:13/0 = 0
4:13/0 = 0
14:12/0 = 0
14:11/0 = 0
11:14/0 = 0
10:14/0 = 0
2:14/0 = 0
12:14/0 = 0
13:14/0 = 0
14:14/0 = 0
14:13/0 = 0
[resource]
tile_size = Vector2i(32, 32)
physics_layer_0/collision_layer = 1
terrain_set_0/mode = 0
terrain_set_0/terrain_0/name = "Terrain 0"
terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1)
sources/5 = SubResource("TileSetAtlasSource_26wvp")

150
Scenes/StartMenu.tscn Normal file
View File

@@ -0,0 +1,150 @@
[gd_scene load_steps=6 format=3 uid="uid://cpp0nq4q06xmh"]
[ext_resource type="Script" uid="uid://c78blp14uphut" path="res://Scripts/StartMenu.gd" id="1_script"]
[ext_resource type="Texture2D" uid="uid://cbnpp740q2cyc" path="res://Assets/background2.png" id="2_dl0pg"]
[ext_resource type="Texture2D" uid="uid://cpxh1i4anleoc" path="res://Assets/tx-removebg-preview.png" id="3_h303d"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_card"]
bg_color = Color(1, 1, 1, 1)
border_width_left = 4
border_width_top = 4
border_width_right = 4
border_width_bottom = 4
border_color = Color(0.164706, 0.231373, 0.305882, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
expand_margin_left = 20.0
expand_margin_top = 20.0
expand_margin_right = 20.0
expand_margin_bottom = 20.0
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_btn"]
bg_color = Color(0.258824, 0.541176, 1, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[node name="StartMenu" type="CanvasLayer"]
script = ExtResource("1_script")
[node name="Background" type="TextureRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_right = 32.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_dl0pg")
expand_mode = 1
stretch_mode = 6
[node name="CenterContainer" type="CenterContainer" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 16.0
offset_top = 8.0
offset_right = 16.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
[node name="Card" type="PanelContainer" parent="CenterContainer"]
custom_minimum_size = Vector2(320, 0)
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_card")
[node name="Content" type="VBoxContainer" parent="CenterContainer/Card"]
layout_mode = 2
theme_override_constants/separation = 15
[node name="Header" type="VBoxContainer" parent="CenterContainer/Card/Content"]
layout_mode = 2
theme_override_constants/separation = 5
[node name="MascotContainer" type="CenterContainer" parent="CenterContainer/Card/Content/Header"]
layout_mode = 2
[node name="Mascot" type="TextureRect" parent="CenterContainer/Card/Content/Header/MascotContainer"]
custom_minimum_size = Vector2(64, 64)
layout_mode = 2
texture = ExtResource("3_h303d")
expand_mode = 1
stretch_mode = 5
[node name="Title" type="Label" parent="CenterContainer/Card/Content/Header"]
layout_mode = 2
theme_override_colors/font_color = Color(0.164706, 0.231373, 0.305882, 1)
theme_override_font_sizes/font_size = 32
text = "Whaletown"
horizontal_alignment = 1
[node name="Subtitle" type="Label" parent="CenterContainer/Card/Content/Header"]
layout_mode = 2
theme_override_colors/font_color = Color(0.4, 0.4, 0.4, 1)
theme_override_font_sizes/font_size = 14
text = "Start your journey!"
horizontal_alignment = 1
[node name="Form" type="VBoxContainer" parent="CenterContainer/Card/Content"]
layout_mode = 2
theme_override_constants/separation = 10
[node name="NameInput" type="LineEdit" parent="CenterContainer/Card/Content/Form"]
layout_mode = 2
placeholder_text = "Username / Phone / Email"
[node name="PasswordInput" type="LineEdit" parent="CenterContainer/Card/Content/Form"]
layout_mode = 2
placeholder_text = "Password"
secret = true
[node name="Options" type="HBoxContainer" parent="CenterContainer/Card/Content/Form"]
layout_mode = 2
theme_override_constants/separation = 20
alignment = 1
[node name="RememberCheck" type="CheckBox" parent="CenterContainer/Card/Content/Form/Options"]
layout_mode = 2
theme_override_colors/font_color = Color(0.164706, 0.231373, 0.305882, 1)
text = "Remember"
[node name="AutoLoginCheck" type="CheckBox" parent="CenterContainer/Card/Content/Form/Options"]
layout_mode = 2
theme_override_colors/font_color = Color(0.164706, 0.231373, 0.305882, 1)
text = "Auto Login"
[node name="JoinButton" type="Button" parent="CenterContainer/Card/Content"]
custom_minimum_size = Vector2(0, 45)
layout_mode = 2
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_pressed_color = Color(0.9, 0.9, 0.9, 1)
theme_override_colors/font_hover_color = Color(1, 1, 1, 1)
theme_override_font_sizes/font_size = 18
theme_override_styles/normal = SubResource("StyleBoxFlat_btn")
theme_override_styles/pressed = SubResource("StyleBoxFlat_btn")
theme_override_styles/hover = SubResource("StyleBoxFlat_btn")
text = "Enter Town"
[node name="Footer" type="HBoxContainer" parent="CenterContainer/Card/Content"]
layout_mode = 2
alignment = 1
[node name="ForgotLink" type="LinkButton" parent="CenterContainer/Card/Content/Footer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.164706, 0.231373, 0.305882, 1)
text = "Forgot Password?"
[node name="RegisterLink" type="LinkButton" parent="CenterContainer/Card/Content/Footer"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.164706, 0.231373, 0.305882, 1)
text = "Register"
text_direction = 2
[connection signal="pressed" from="CenterContainer/Card/Content/JoinButton" to="." method="_on_join_pressed"]

1128
Scenes/TownTileset.tres Normal file

File diff suppressed because it is too large Load Diff

42
Scenes/UI/ChatBubble.tscn Normal file
View File

@@ -0,0 +1,42 @@
[gd_scene load_steps=3 format=3]
[ext_resource type="Script" path="res://Scripts/UI/ChatBubble.gd" id="1_script"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bubble_modern"]
bg_color = Color(1, 1, 1, 0.9)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
shadow_color = Color(0, 0, 0, 0.2)
shadow_size = 2
[node name="ChatBubble" type="Control"]
layout_mode = 3
anchors_preset = 0
script = ExtResource("1_script")
[node name="PanelContainer" type="PanelContainer" parent="."]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -75.0
offset_top = -60.0
offset_right = 75.0
offset_bottom = -20.0
grow_horizontal = 2
grow_vertical = 0
theme_override_styles/panel = SubResource("StyleBoxFlat_bubble_modern")
[node name="Label" type="Label" parent="PanelContainer"]
layout_mode = 2
theme_override_colors/font_color = Color(0.1, 0.1, 0.1, 1)
theme_override_font_sizes/font_size = 8
text = "..."
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 3
custom_minimum_size = Vector2(150, 0)

48
Scenes/UI/ChatHUD.tscn Normal file
View File

@@ -0,0 +1,48 @@
[gd_scene load_steps=3 format=3 uid="uid://bdghsiesgwwho"]
[ext_resource type="Script" uid="uid://dia2n8udb7xxq" path="res://Scripts/UI/ChatHUD.gd" id="1_script"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_modern"]
bg_color = Color(0.0784314, 0.0784314, 0.0784314, 0.6)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
expand_margin_left = 2.0
expand_margin_top = 2.0
expand_margin_right = 2.0
expand_margin_bottom = 2.0
[node name="ChatHUD" type="CanvasLayer"]
script = ExtResource("1_script")
[node name="PanelContainer" type="PanelContainer" parent="."]
custom_minimum_size = Vector2(180, 70)
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 10.0
offset_top = -80.0
offset_right = 190.0
offset_bottom = -10.0
grow_vertical = 0
theme_override_styles/panel = SubResource("StyleBoxFlat_modern")
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"]
layout_mode = 2
[node name="RichTextLabel" type="RichTextLabel" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_font_sizes/normal_font_size = 10
bbcode_enabled = true
text = "[color=#888]Welcome to WhaleTown![/color]
"
scroll_following = true
[node name="LineEdit" type="LineEdit" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_font_sizes/font_size = 10
placeholder_text = "Press Enter to chat..."
flat = true

132
Scenes/UI/NoticeDialog.tscn Normal file
View File

@@ -0,0 +1,132 @@
[gd_scene load_steps=3 format=3 uid="uid://rdmro1jxs6ga"]
[ext_resource type="Script" uid="uid://cy3n8ccmeolgd" path="res://Scripts/UI/NoticeDialog.gd" id="1_script"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rounded"]
bg_color = Color(0.95, 0.95, 0.95, 1)
corner_radius_top_left = 16
corner_radius_top_right = 16
corner_radius_bottom_right = 16
corner_radius_bottom_left = 16
shadow_color = Color(0, 0, 0, 0.2)
shadow_size = 8
[node name="NoticeDialog" type="CanvasLayer"]
process_mode = 3
script = ExtResource("1_script")
[node name="Dimmer" type="ColorRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.5)
[node name="CenterContainer" type="CenterContainer" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="PanelContainer" type="PanelContainer" parent="CenterContainer"]
custom_minimum_size = Vector2(480, 420)
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_rounded")
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/PanelContainer"]
layout_mode = 2
theme_override_constants/separation = 12
[node name="HeaderSpacer" type="Control" parent="CenterContainer/PanelContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 4)
layout_mode = 2
[node name="Header" type="HBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="LeftSpacer" type="Control" parent="CenterContainer/PanelContainer/VBoxContainer/Header"]
layout_mode = 2
size_flags_horizontal = 3
[node name="Title" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/Header"]
layout_mode = 2
theme_override_colors/font_color = Color(0.2, 0.2, 0.2, 1)
theme_override_font_sizes/font_size = 22
text = "公告板"
horizontal_alignment = 1
[node name="RightContainer" type="HBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/Header"]
layout_mode = 2
size_flags_horizontal = 3
alignment = 2
[node name="CloseButton" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/Header/RightContainer"]
custom_minimum_size = Vector2(32, 32)
layout_mode = 2
text = "X"
flat = true
[node name="RightMargin" type="Control" parent="CenterContainer/PanelContainer/VBoxContainer/Header/RightContainer"]
custom_minimum_size = Vector2(8, 0)
layout_mode = 2
[node name="ContentContainer" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 10
[node name="ImagePanel" type="PanelContainer" parent="CenterContainer/PanelContainer/VBoxContainer/ContentContainer"]
custom_minimum_size = Vector2(0, 200)
layout_mode = 2
[node name="ImageRect" type="TextureRect" parent="CenterContainer/PanelContainer/VBoxContainer/ContentContainer/ImagePanel"]
layout_mode = 2
expand_mode = 1
stretch_mode = 5
[node name="ImageLabel" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/ContentContainer/ImagePanel"]
layout_mode = 2
theme_override_colors/font_color = Color(0.6, 0.6, 0.6, 1)
text = "Image Placeholder"
horizontal_alignment = 1
vertical_alignment = 1
[node name="TextPanel" type="MarginContainer" parent="CenterContainer/PanelContainer/VBoxContainer/ContentContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/margin_left = 16
theme_override_constants/margin_right = 16
[node name="ContentLabel" type="RichTextLabel" parent="CenterContainer/PanelContainer/VBoxContainer/ContentContainer/TextPanel"]
layout_mode = 2
theme_override_colors/default_color = Color(0.3, 0.3, 0.3, 1)
theme_override_font_sizes/normal_font_size = 16
bbcode_enabled = true
text = "Announcement Content..."
[node name="Footer" type="HBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
theme_override_constants/separation = 20
alignment = 1
[node name="PrevButton" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/Footer"]
custom_minimum_size = Vector2(40, 40)
layout_mode = 2
text = "<"
[node name="DotsContainer" type="HBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/Footer"]
layout_mode = 2
theme_override_constants/separation = 8
alignment = 1
[node name="NextButton" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/Footer"]
custom_minimum_size = Vector2(40, 40)
layout_mode = 2
text = ">"
[node name="BottomSpacer" type="Control" parent="CenterContainer/PanelContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 4)
layout_mode = 2

View File

@@ -0,0 +1,114 @@
[gd_scene load_steps=5 format=3 uid="uid://d8mam0n1a3b5"]
[ext_resource type="Script" uid="uid://djjy58mh6kl4o" path="res://Scripts/UI/WelcomeDialog.gd" id="1_script"]
[ext_resource type="Texture2D" uid="uid://cbnpp740q2cyc" path="res://Assets/background2.png" id="2_dy5hw"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_card"]
bg_color = Color(1, 1, 1, 1)
corner_radius_top_left = 10
corner_radius_top_right = 10
corner_radius_bottom_right = 10
corner_radius_bottom_left = 10
shadow_color = Color(0, 0, 0, 0.2)
shadow_size = 10
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_btn_rounded"]
bg_color = Color(0.95, 0.95, 0.95, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[node name="WelcomeDialog" type="CanvasLayer"]
script = ExtResource("1_script")
[node name="ColorRect" type="ColorRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.4)
[node name="CenterContainer" type="CenterContainer" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="PanelContainer" type="PanelContainer" parent="CenterContainer"]
custom_minimum_size = Vector2(400, 350)
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_card")
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/PanelContainer"]
layout_mode = 2
theme_override_constants/separation = 10
[node name="Header" type="HBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer"]
layout_mode = 2
alignment = 1
[node name="Spacer" type="Control" parent="CenterContainer/PanelContainer/VBoxContainer/Header"]
layout_mode = 2
size_flags_horizontal = 3
[node name="Title" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/Header"]
layout_mode = 2
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 18
text = "欢迎来到 Datawhale Town!"
[node name="Spacer2" type="Control" parent="CenterContainer/PanelContainer/VBoxContainer/Header"]
layout_mode = 2
size_flags_horizontal = 3
[node name="CloseButton" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/Header"]
custom_minimum_size = Vector2(30, 30)
layout_mode = 2
text = "X"
flat = true
[node name="HSeparator" type="HSeparator" parent="CenterContainer/PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="LogoContainer" type="CenterContainer" parent="CenterContainer/PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="CenterContainer/PanelContainer/VBoxContainer/LogoContainer"]
custom_minimum_size = Vector2(300, 100)
layout_mode = 2
texture = ExtResource("2_dy5hw")
expand_mode = 1
stretch_mode = 5
[node name="BodyText" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer"]
layout_mode = 2
theme_override_colors/font_color = Color(0.3, 0.3, 0.3, 1)
theme_override_font_sizes/font_size = 14
text = "连接·共生·见证
Datawhale Town —— 学习者的赛博家园与精神坐标。
✨ 实时广场:看大家都在学什么。
🏠 个人空间:展示你的学习笔记与作品。
🤝 开源营地:更有氛围的组队学习体验。"
horizontal_alignment = 1
autowrap_mode = 3
[node name="Spacer3" type="Control" parent="CenterContainer/PanelContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
[node name="ActionContainer" type="CenterContainer" parent="CenterContainer/PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="StartButton" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/ActionContainer"]
custom_minimum_size = Vector2(150, 40)
layout_mode = 2
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_styles/normal = SubResource("StyleBoxFlat_btn_rounded")
text = "开始探索"

19
Scenes/WelcomeBoard.tscn Normal file
View File

@@ -0,0 +1,19 @@
[gd_scene load_steps=4 format=3 uid="uid://c7k8yay002w4"]
[ext_resource type="Script" path="res://Scripts/WelcomeBoard.gd" id="1_script"]
[ext_resource type="Texture2D" uid="uid://welcome_board_placeholder" path="res://Assets/WelcomeBoard.png" id="2_sprite"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_board"]
size = Vector2(40, 30)
[node name="WelcomeBoard" type="StaticBody2D"]
collision_layer = 3
script = ExtResource("1_script")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("2_sprite")
scale = Vector2(0.25, 0.25)
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 10)
shape = SubResource("RectangleShape2D_board")

7897
Scenes/World.tscn Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
[gd_resource type="TileSet" load_steps=2 format=3 uid="uid://1ouutp6s2r1b"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_1"]
0:0/0 = 0
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
1:0/0 = 0
1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
[resource]
physics_layer_0/collision_layer = 1
sources/0 = SubResource("TileSetAtlasSource_1")