Infinite islands level

This commit is contained in:
Vojtěch Struhár 2025-02-11 15:17:53 +01:00
parent 4d07c5fb73
commit e489469119
5 changed files with 448 additions and 84 deletions

File diff suppressed because one or more lines are too long

300
level_platformer.tscn Normal file
View File

@ -0,0 +1,300 @@
[gd_scene load_steps=11 format=3 uid="uid://c0uk51mh24sl6"]
[ext_resource type="PackedScene" uid="uid://cjd40tsurltut" path="res://addons/platformer-assets/block-grass-large.glb" id="1_1wwjl"]
[ext_resource type="PackedScene" uid="uid://cgdlowfuuorvi" path="res://player.tscn" id="3_7knre"]
[ext_resource type="PackedScene" uid="uid://c6u7a7bisra5b" path="res://addons/platformer-assets/flowers.glb" id="3_qvh7i"]
[ext_resource type="PackedScene" uid="uid://2oao5c24w74u" path="res://addons/platformer-assets/grass.glb" id="4_wg85y"]
[ext_resource type="Script" uid="uid://d2bvvjsibau8c" path="res://addons/simple-portal-system/scripts/portal.gd" id="5_wg85y"]
[ext_resource type="Script" uid="uid://bkv7t4hw21byg" path="res://addons/simple-portal-system/scripts/simple_portal_teleport.gd" id="6_3fidx"]
[ext_resource type="ArrayMesh" uid="uid://bqilnvlfws6xh" path="res://portal-mesh.tres" id="7_hwdx8"]
[sub_resource type="Environment" id="Environment_7knre"]
background_mode = 1
background_color = Color(0.590126, 0.615058, 0.699408, 1)
glow_enabled = true
[sub_resource type="BoxShape3D" id="BoxShape3D_1wwjl"]
size = Vector3(2, 1, 2)
[sub_resource type="BoxShape3D" id="BoxShape3D_2wcgd"]
size = Vector3(2, 2.5, 0.2)
[node name="Main" type="Node3D"]
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(-0.866023, -0.433016, 0.250001, 0, 0.499998, 0.866027, -0.500003, 0.749999, -0.43301, 0, 0, 0)
shadow_enabled = true
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_7knre")
[node name="Player" parent="." instance=ExtResource("3_7knre")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.84696, 1.60873, -1.16561)
[node name="Island" type="Node3D" parent="."]
[node name="block-grass-large2" parent="Island" instance=ExtResource("1_1wwjl")]
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large2"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large2/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large3" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large3"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large3/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large4" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large4"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large4/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large5" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, -2)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large5"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large5/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large6" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 0)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large6"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large6/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large7" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 0)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large7"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large7/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large8" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, -2)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large8"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large8/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large9" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -2)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large9"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large9/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large10" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -4)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large10"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large10/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large11" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, -4)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large11"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large11/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large12" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, -4)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large12"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large12/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large13" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -4)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large13"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large13/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large14" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -6)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large14"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large14/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large15" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, -6)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large15"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large15/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large16" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -8)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large16"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large16/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large17" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, -8)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large17"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large17/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large18" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, -6)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large18"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large18/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large19" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -6)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large19"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large19/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large20" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, -8)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large20"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large20/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large21" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -8)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large21"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large21/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large22" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -10)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large22"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large22/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large23" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, -10)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large23"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large23/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large24" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, -10)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large24"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large24/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="block-grass-large25" parent="Island" instance=ExtResource("1_1wwjl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -10)
[node name="StaticBody3D" type="StaticBody3D" parent="Island/block-grass-large25"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Island/block-grass-large25/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005, 0.5, 0)
shape = SubResource("BoxShape3D_1wwjl")
[node name="flowers" parent="Island" instance=ExtResource("3_qvh7i")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.683421, 1, -0.22983)
[node name="flowers2" parent="Island" instance=ExtResource("3_qvh7i")]
transform = Transform3D(0.82088, 0, -0.5711, 0, 1, 0, 0.5711, 0, 0.82088, 5.6032, 1, -2.39323)
[node name="grass2" parent="Island" instance=ExtResource("4_wg85y")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.443156, 1, -4.40125)
[node name="P_white_wide" type="MeshInstance3D" parent="." node_paths=PackedStringArray("exit_portal")]
transform = Transform3D(20, 0, 0, 0, -8.74228e-07, 1, 0, -20, -4.37114e-08, 0, -15, 0)
layers = 2
cast_shadow = 0
mesh = ExtResource("7_hwdx8")
script = ExtResource("5_wg85y")
disable_viewport_distance = 100.0
destroy_disabled_viewport = false
fade_out_distance_max = 100.0
fade_out_distance_min = 90.0
fade_out_color = Color(1, 0, 1, 1)
exit_cull_mask = 1048573
exit_portal = NodePath("../P_green_short")
[node name="Teleport" type="Area3D" parent="P_white_wide"]
script = ExtResource("6_3fidx")
[node name="CollisionShape3D" type="CollisionShape3D" parent="P_white_wide/Teleport"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.1)
shape = SubResource("BoxShape3D_2wcgd")
[node name="P_green_short" type="MeshInstance3D" parent="." node_paths=PackedStringArray("exit_portal")]
transform = Transform3D(-8.74228e-07, -20, 4.80825e-08, 0, -8.74228e-07, -1.1, 20, -8.74228e-07, 2.10175e-15, 0, 15, 0)
layers = 2
cast_shadow = 0
mesh = ExtResource("7_hwdx8")
script = ExtResource("5_wg85y")
disable_viewport_distance = 100.0
destroy_disabled_viewport = false
fade_out_distance_max = 100.0
fade_out_distance_min = 90.0
fade_out_color = Color(1, 0, 1, 1)
exit_cull_mask = 1048573
exit_portal = NodePath("../P_white_wide")
[node name="Teleport" type="Area3D" parent="P_green_short"]
script = ExtResource("6_3fidx")
[node name="CollisionShape3D" type="CollisionShape3D" parent="P_green_short/Teleport"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.1)
shape = SubResource("BoxShape3D_2wcgd")

36
player.tscn Normal file
View File

@ -0,0 +1,36 @@
[gd_scene load_steps=5 format=3 uid="uid://cgdlowfuuorvi"]
[ext_resource type="Script" uid="uid://bp1bo57yqtv65" path="res://player.gd" id="1_4flbx"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_0xm2m"]
radius = 0.4
height = 1.75
[sub_resource type="SphereShape3D" id="SphereShape3D_lquwl"]
radius = 0.005
[sub_resource type="CapsuleMesh" id="CapsuleMesh_4flbx"]
radius = 0.4
height = 1.75
[node name="Player" type="CharacterBody3D"]
script = ExtResource("1_4flbx")
metadata/teleportable = false
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.32153, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.875, 0)
shape = SubResource("CapsuleShape3D_0xm2m")
[node name="TeleportTrigger" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.875, 0)
metadata/teleportable_root = NodePath("..")
[node name="CollisionShape3D" type="CollisionShape3D" parent="TeleportTrigger"]
shape = SubResource("SphereShape3D_lquwl")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.875, 0)
mesh = SubResource("CapsuleMesh_4flbx")

View File

@ -37,3 +37,8 @@ move_back={
"events": [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":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) "events": [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":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
] ]
} }
[layer_names]
3d_render/layer_1="World"
3d_render/layer_2="Portals"