some ui polish and project cleanup
This commit is contained in:
1
Zones/Cave/ffd_cave.json
Normal file
1
Zones/Cave/ffd_cave.json
Normal file
File diff suppressed because one or more lines are too long
BIN
Zones/Cave/model_cave.glb
Normal file
BIN
Zones/Cave/model_cave.glb
Normal file
Binary file not shown.
50
Zones/Cave/model_cave.glb.import
Normal file
50
Zones/Cave/model_cave.glb.import
Normal file
@@ -0,0 +1,50 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://bhroqr4s1qso5"
|
||||
path="res://.godot/imported/model_cave.glb-bd10f61e23a22baa08fa02fe00568067.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Zones/Cave/model_cave.glb"
|
||||
dest_files=["res://.godot/imported/model_cave.glb-bd10f61e23a22baa08fa02fe00568067.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
nodes/use_name_suffixes=true
|
||||
nodes/use_node_type_suffixes=true
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=false
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
materials/extract=0
|
||||
materials/extract_format=0
|
||||
materials/extract_path=""
|
||||
_subresources={
|
||||
"materials": {
|
||||
"CaveWall": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/fallback_path": "res://Materials/dirt1/dirt1.tres",
|
||||
"use_external/path": "uid://vu21wvwrmhlj"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=1
|
||||
gltf/embedded_image_handling=1
|
||||
BIN
Zones/Cave/model_cave_dirt.png
Normal file
BIN
Zones/Cave/model_cave_dirt.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
43
Zones/Cave/model_cave_dirt.png.import
Normal file
43
Zones/Cave/model_cave_dirt.png.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cl6equc2hhaem"
|
||||
path="res://.godot/imported/model_cave_dirt.png-039135bf5228cec74a8d4790b669eb21.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
generator_parameters={
|
||||
"md5": "dcd74dad69b0cf175774820a45df225d"
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Zones/Cave/model_cave_dirt.png"
|
||||
dest_files=["res://.godot/imported/model_cave_dirt.png-039135bf5228cec74a8d4790b669eb21.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
290
Zones/Cave/scn_cave.tscn
Normal file
290
Zones/Cave/scn_cave.tscn
Normal file
@@ -0,0 +1,290 @@
|
||||
[gd_scene format=3 uid="uid://csq7if8wojp4g"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cvejbo3srx8py" path="res://Scripts/level.gd" id="1_li03l"]
|
||||
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="2_1sih4"]
|
||||
[ext_resource type="Resource" uid="uid://8eba45hql7bo" path="res://Enemies/EyeDog/eye_dog.tres" id="3_y5pxn"]
|
||||
[ext_resource type="Resource" uid="uid://dxi17xvdlhkvc" path="res://Enemies/ElderEyeDog/elder_eye_dog.tres" id="4_gow2y"]
|
||||
[ext_resource type="PackedScene" uid="uid://bhroqr4s1qso5" path="res://Zones/Cave/model_cave.glb" id="4_x53u6"]
|
||||
[ext_resource type="Script" uid="uid://dkuxg6ek5us4f" path="res://Scripts/enemy_spawner.gd" id="5_e8b6i"]
|
||||
[ext_resource type="Resource" uid="uid://cvehqh4tt28g7" path="res://Enemies/BabyEyeDog/baby_eye_dog.tres" id="5_y23i6"]
|
||||
[ext_resource type="Script" uid="uid://cxwtuxytavfu5" path="res://Scripts/enemy_goal.gd" id="6_n26ay"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://Audio/shot1.wav" id="7_e8b6i"]
|
||||
[ext_resource type="PackedScene" uid="uid://1b2ikdanl66b" path="res://Scenes/CardPrinter/card_printer.tscn" id="7_y5pxn"]
|
||||
[ext_resource type="PackedScene" uid="uid://7g3jev3v6d3l" path="res://Scenes/ShopStand/shop_stand.tscn" id="8_x53u6"]
|
||||
[ext_resource type="Script" uid="uid://yk54owkf7pgj" path="res://Scripts/cinema_cam.gd" id="9_x53u6"]
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_x53u6"]
|
||||
radius = 4.5510416
|
||||
|
||||
[sub_resource type="Shader" id="Shader_6od8s"]
|
||||
code = "shader_type sky;
|
||||
render_mode use_debanding;
|
||||
|
||||
uniform vec4 sky_top_color : source_color = vec4(0.385, 0.454, 0.55, 1.0);
|
||||
uniform vec4 sky_horizon_color : source_color = vec4(0.646, 0.656, 0.67, 1.0);
|
||||
uniform float sky_curve : hint_range(0, 1) = 0.15;
|
||||
uniform float sky_energy = 1.0; // In Lux.
|
||||
uniform sampler2D sky_cover : filter_linear, source_color, hint_default_black;
|
||||
uniform vec4 sky_cover_modulate : source_color = vec4(1.0, 1.0, 1.0, 1.0);
|
||||
uniform vec4 ground_bottom_color : source_color = vec4(0.2, 0.169, 0.133, 1.0);
|
||||
uniform vec4 ground_horizon_color : source_color = vec4(0.646, 0.656, 0.67, 1.0);
|
||||
uniform float ground_curve : hint_range(0, 1) = 0.02;
|
||||
uniform float ground_energy = 1.0;
|
||||
uniform float sun_angle_max = 30.0;
|
||||
uniform float sun_curve : hint_range(0, 1) = 0.15;
|
||||
uniform float exposure : hint_range(0, 128) = 1.0;
|
||||
|
||||
// Wind offset direction (x and y only)
|
||||
uniform vec2 wind_offset_direction = vec2(0.5, 0.1); // Control direction of offset (x, y)
|
||||
uniform float wind_speed : hint_range(0.0, 25.0) = 1.0; // Speed of the noise movement over time
|
||||
|
||||
// Cloud change settings
|
||||
uniform bool clouds_change = true; // Whether to change the cloud layer or not
|
||||
uniform float cloud_change_rate : hint_range(0.0, 5.0) = .40; // Rate at which the cloud effect changes
|
||||
|
||||
// Pole blending parameters
|
||||
uniform float pole_blend_shape : hint_range(0.0, 2.0) = 0.05; // How much the noise affects the blend shape
|
||||
uniform float pole_blend_strength : hint_range(0, 1) = 0.05; // Control blending intensity at poles
|
||||
uniform float pole_blend_brightness : hint_range(0.0, 1.0) = .3;
|
||||
|
||||
// Horizon blending parameters - similar to pole blending
|
||||
uniform float horizon_blend_shape : hint_range(0.0, 2.0) = 0.05; // How much the noise affects the horizon blend shape
|
||||
uniform float horizon_blend_strength : hint_range(0, 1) = 0.05; // Control blending intensity at horizon
|
||||
uniform float horizon_blend_brightness : hint_range(0.0, 1.0) = .3;
|
||||
uniform float horizon_blend_width : hint_range(0.0, 0.5) = 0.1; // Width of the horizon blend region
|
||||
|
||||
void sky() {
|
||||
float v_angle = acos(clamp(EYEDIR.y, -1.0, 1.0));
|
||||
float c = (1.0 - v_angle / (PI * 0.5));
|
||||
vec3 sky = mix(sky_horizon_color.rgb, sky_top_color.rgb, clamp(1.0 - pow(1.0 - c, 1.0 / sky_curve), 0.0, 1.0));
|
||||
sky *= sky_energy;
|
||||
|
||||
if (LIGHT0_ENABLED) {
|
||||
float sun_angle = acos(dot(LIGHT0_DIRECTION, EYEDIR));
|
||||
if (sun_angle < LIGHT0_SIZE) {
|
||||
sky = LIGHT0_COLOR * LIGHT0_ENERGY;
|
||||
} else if (sun_angle < sun_angle_max) {
|
||||
float c2 = (sun_angle - LIGHT0_SIZE) / (sun_angle_max - LIGHT0_SIZE);
|
||||
sky = mix(LIGHT0_COLOR * LIGHT0_ENERGY, sky, clamp(1.0 - pow(1.0 - c2, 1.0 / sun_curve), 0.0, 1.0));
|
||||
}
|
||||
}
|
||||
|
||||
if (LIGHT1_ENABLED) {
|
||||
float sun_angle = acos(dot(LIGHT1_DIRECTION, EYEDIR));
|
||||
if (sun_angle < LIGHT1_SIZE) {
|
||||
sky = LIGHT1_COLOR * LIGHT1_ENERGY;
|
||||
} else if (sun_angle < sun_angle_max) {
|
||||
float c2 = (sun_angle - LIGHT1_SIZE) / (sun_angle_max - LIGHT1_SIZE);
|
||||
sky = mix(LIGHT1_COLOR * LIGHT1_ENERGY, sky, clamp(1.0 - pow(1.0 - c2, 1.0 / sun_curve), 0.0, 1.0));
|
||||
}
|
||||
}
|
||||
|
||||
if (LIGHT2_ENABLED) {
|
||||
float sun_angle = acos(dot(LIGHT2_DIRECTION, EYEDIR));
|
||||
if (sun_angle < LIGHT2_SIZE) {
|
||||
sky = LIGHT2_COLOR * LIGHT2_ENERGY;
|
||||
} else if (sun_angle < sun_angle_max) {
|
||||
float c2 = (sun_angle - LIGHT2_SIZE) / (sun_angle_max - LIGHT2_SIZE);
|
||||
sky = mix(LIGHT2_COLOR * LIGHT2_ENERGY, sky, clamp(1.0 - pow(1.0 - c2, 1.0 / sun_curve), 0.0, 1.0));
|
||||
}
|
||||
}
|
||||
|
||||
if (LIGHT3_ENABLED) {
|
||||
float sun_angle = acos(dot(LIGHT3_DIRECTION, EYEDIR));
|
||||
if (sun_angle < LIGHT3_SIZE) {
|
||||
sky = LIGHT3_COLOR * LIGHT3_ENERGY;
|
||||
} else if (sun_angle < sun_angle_max) {
|
||||
float c2 = (sun_angle - LIGHT3_SIZE) / (sun_angle_max - LIGHT3_SIZE);
|
||||
sky = mix(LIGHT3_COLOR * LIGHT3_ENERGY, sky, clamp(1.0 - pow(1.0 - c2, 1.0 / sun_curve), 0.0, 1.0));
|
||||
}
|
||||
}
|
||||
|
||||
// Sample the sky cover texture with dynamic offset (only x and y direction)
|
||||
vec2 noise_coords = SKY_COORDS.xy + wind_offset_direction * wind_speed * TIME * 0.01;
|
||||
|
||||
// Wrap UVs to keep tiling seamless
|
||||
noise_coords = mod(noise_coords, 1.0);
|
||||
|
||||
// Sample the original noise texture
|
||||
vec4 sky_cover_texture = texture(sky_cover, noise_coords);
|
||||
|
||||
// Sample flipped noise for Z-offset effect
|
||||
vec4 flipped_noise = texture(sky_cover, vec2(noise_coords.x, 1.0 - noise_coords.y));
|
||||
|
||||
// Z blending (cloud change) logic
|
||||
float cloud_blend_factor = 0.0;
|
||||
if (clouds_change) {
|
||||
// Use a sine wave to blend clouds smoothly over time based on the cloud_change_rate
|
||||
cloud_blend_factor = 0.5 + 0.5 * sin(TIME * cloud_change_rate);
|
||||
}
|
||||
|
||||
// Blend between the original and flipped noise using cloud_blend_factor
|
||||
vec4 blended_noise_texture = mix(sky_cover_texture, flipped_noise, cloud_blend_factor);
|
||||
|
||||
// Pole blending
|
||||
float base_pole_blend_factor = abs(EYEDIR.y); // Original blend factor (circular)
|
||||
float noise_pole_blend = blended_noise_texture.r * pole_blend_shape;
|
||||
float pole_blend_factor = smoothstep(1.0 - pole_blend_strength, 1.0, base_pole_blend_factor + noise_pole_blend);
|
||||
|
||||
// Horizon blending - detect when we're near the horizon
|
||||
float horizon_distance = abs(EYEDIR.y); // This will be close to 0 near the horizon
|
||||
float horizon_factor = 1.0 - smoothstep(0.0, horizon_blend_width, horizon_distance);
|
||||
float noise_horizon_blend = blended_noise_texture.g * horizon_blend_shape;
|
||||
float horizon_blend_factor = smoothstep(1.0 - horizon_blend_strength, 1.0, horizon_factor + noise_horizon_blend);
|
||||
|
||||
// Combine both blend factors (poles and horizon)
|
||||
float combined_blend_factor = max(pole_blend_factor, horizon_blend_factor);
|
||||
|
||||
// Blend noise with brightness value based on the combined factor
|
||||
vec3 blended_noise = mix(blended_noise_texture.rgb, vec3(pole_blend_brightness), pole_blend_factor);
|
||||
blended_noise = mix(blended_noise, vec3(horizon_blend_brightness), horizon_blend_factor);
|
||||
|
||||
sky += (blended_noise * sky_cover_modulate.rgb) * blended_noise_texture.a * sky_cover_modulate.a * sky_energy;
|
||||
|
||||
// Ground blending
|
||||
c = (v_angle - (PI * 0.5)) / (PI * 0.5);
|
||||
vec3 ground = mix(ground_horizon_color.rgb, ground_bottom_color.rgb, clamp(1.0 - pow(1.0 - c, 1.0 / ground_curve), 0.0, 1.0));
|
||||
ground *= ground_energy;
|
||||
|
||||
COLOR = mix(ground, sky, step(0.0, EYEDIR.y)) * exposure;
|
||||
}"
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_e8b6i"]
|
||||
offsets = PackedFloat32Array(0.151786, 0.5625, 1)
|
||||
colors = PackedColorArray(0, 0, 0, 1, 0.565217, 0.565217, 0.565217, 1, 1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_n26ay"]
|
||||
noise_type = 3
|
||||
domain_warp_enabled = true
|
||||
|
||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_r4es0"]
|
||||
width = 1024
|
||||
height = 1024
|
||||
noise = SubResource("FastNoiseLite_n26ay")
|
||||
color_ramp = SubResource("Gradient_e8b6i")
|
||||
seamless = true
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_gow2y"]
|
||||
shader = SubResource("Shader_6od8s")
|
||||
shader_parameter/sky_top_color = Color(0.25262, 0.408375, 0.692798, 1)
|
||||
shader_parameter/sky_horizon_color = Color(0.48476, 0.638261, 0.884351, 1)
|
||||
shader_parameter/sky_curve = 0.0349887
|
||||
shader_parameter/sky_energy = 1.0
|
||||
shader_parameter/sky_cover = SubResource("NoiseTexture2D_r4es0")
|
||||
shader_parameter/sky_cover_modulate = Color(1, 1, 1, 1)
|
||||
shader_parameter/ground_bottom_color = Color(0.121409, 0.203944, 0.437026, 1)
|
||||
shader_parameter/ground_horizon_color = Color(0.486275, 0.639216, 0.882353, 1)
|
||||
shader_parameter/ground_curve = 0.02
|
||||
shader_parameter/ground_energy = 1.0
|
||||
shader_parameter/sun_angle_max = 0.523599
|
||||
shader_parameter/sun_curve = 0.15
|
||||
shader_parameter/exposure = 1.0
|
||||
shader_parameter/wind_offset_direction = Vector2(0.5, 0.1)
|
||||
shader_parameter/wind_speed = 0.0
|
||||
shader_parameter/clouds_change = true
|
||||
shader_parameter/cloud_change_rate = 0.4
|
||||
shader_parameter/pole_blend_shape = 0.05
|
||||
shader_parameter/pole_blend_strength = 0.05
|
||||
shader_parameter/pole_blend_brightness = 0.3
|
||||
shader_parameter/horizon_blend_shape = 0.05
|
||||
shader_parameter/horizon_blend_strength = 0.05
|
||||
shader_parameter/horizon_blend_brightness = 0.3
|
||||
shader_parameter/horizon_blend_width = 0.1
|
||||
|
||||
[sub_resource type="Sky" id="Sky_t42h5"]
|
||||
sky_material = SubResource("ShaderMaterial_gow2y")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_y23i6"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_t42h5")
|
||||
tonemap_mode = 4
|
||||
ssao_detail = 0.0
|
||||
fog_enabled = true
|
||||
fog_mode = 1
|
||||
fog_density = 1.0
|
||||
fog_depth_begin = 50.0
|
||||
fog_depth_end = 200.0
|
||||
|
||||
[node name="Node3D" type="Node3D" unique_id=1915460305 node_paths=PackedStringArray("tower_path", "player_spawns", "enemy_spawns", "enemy_goals", "corpses", "cinematic_cam", "printer", "shop")]
|
||||
script = ExtResource("1_li03l")
|
||||
enemy_pool = Array[ExtResource("2_1sih4")]([ExtResource("3_y5pxn"), ExtResource("4_gow2y"), ExtResource("5_y23i6")])
|
||||
tower_path = NodePath("Parents/Towers")
|
||||
player_spawns = [NodePath("PlayerSpawn")]
|
||||
enemy_spawns = [NodePath("EnemySpawner"), NodePath("EnemySpawner2"), NodePath("EnemySpawner3")]
|
||||
enemy_goals = [NodePath("EnemyGoal")]
|
||||
corpses = NodePath("Parents/Corpses")
|
||||
cinematic_cam = NodePath("CinematicCamManager")
|
||||
printer = NodePath("CardPrinter")
|
||||
shop = NodePath("ShopStand")
|
||||
data_path = "res://Worlds/GreenPlanet/Levels/Cave/level3.json"
|
||||
metadata/_custom_type_script = "uid://cvejbo3srx8py"
|
||||
|
||||
[node name="Parents" type="Node3D" parent="." unique_id=447416055]
|
||||
|
||||
[node name="Towers" type="Node3D" parent="Parents" unique_id=401225440]
|
||||
|
||||
[node name="Corpses" type="Node3D" parent="Parents" unique_id=1858487493]
|
||||
|
||||
[node name="cave_level" parent="." unique_id=430935043 instance=ExtResource("4_x53u6")]
|
||||
|
||||
[node name="PlayerSpawn" type="Node3D" parent="." unique_id=2082895124]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.7781315, 0)
|
||||
|
||||
[node name="EnemySpawner" type="Node3D" parent="." unique_id=1276116196 node_paths=PackedStringArray("enemy_path")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.40332747, -70.750275)
|
||||
script = ExtResource("5_e8b6i")
|
||||
type = 1
|
||||
enemy_path = NodePath("../Node")
|
||||
metadata/_custom_type_script = "uid://dkuxg6ek5us4f"
|
||||
|
||||
[node name="EnemySpawner2" type="Node3D" parent="." unique_id=422958724 node_paths=PackedStringArray("enemy_path")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -43.008965, -0.40332747, -48.143326)
|
||||
script = ExtResource("5_e8b6i")
|
||||
type = 1
|
||||
enemy_path = NodePath("../Node")
|
||||
metadata/_custom_type_script = "uid://dkuxg6ek5us4f"
|
||||
|
||||
[node name="EnemySpawner3" type="Node3D" parent="." unique_id=2111262624 node_paths=PackedStringArray("enemy_path")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 33.049927, 3.8600483, -66.462)
|
||||
script = ExtResource("5_e8b6i")
|
||||
type = 1
|
||||
enemy_path = NodePath("../Node")
|
||||
metadata/_custom_type_script = "uid://dkuxg6ek5us4f"
|
||||
|
||||
[node name="EnemyGoal" type="Node3D" parent="." unique_id=1902271599 node_paths=PackedStringArray("audio_player")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.7545819, 0.21650457, 3.3273573)
|
||||
script = ExtResource("6_n26ay")
|
||||
audio_player = NodePath("AudioStreamPlayer3D")
|
||||
metadata/_custom_type_script = "uid://cxwtuxytavfu5"
|
||||
|
||||
[node name="Area3D" type="Area3D" parent="EnemyGoal" unique_id=598009303]
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="EnemyGoal/Area3D" unique_id=1884514185]
|
||||
shape = SubResource("SphereShape3D_x53u6")
|
||||
|
||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="EnemyGoal" unique_id=1013833370]
|
||||
stream = ExtResource("7_e8b6i")
|
||||
|
||||
[node name="CardPrinter" parent="." unique_id=459800869 instance=ExtResource("7_y5pxn")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.507948, 0.03549701, 5.868264)
|
||||
|
||||
[node name="ShopStand" parent="." unique_id=1287436541 instance=ExtResource("8_x53u6")]
|
||||
transform = Transform3D(-1, 0, 6.976922e-05, 0, 1, 0, -6.976922e-05, 0, -1, 4.381688, 0.5, 7.0162544)
|
||||
|
||||
[node name="CinematicCamManager" type="Node3D" parent="." unique_id=1005738879 node_paths=PackedStringArray("path_follows", "cameras")]
|
||||
script = ExtResource("9_x53u6")
|
||||
path_follows = [NodePath("PathFollow3D")]
|
||||
cameras = [NodePath("Camera3D")]
|
||||
metadata/_custom_type_script = "uid://yk54owkf7pgj"
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="CinematicCamManager" unique_id=63929698]
|
||||
|
||||
[node name="PathFollow3D" type="PathFollow3D" parent="CinematicCamManager" unique_id=1152081903]
|
||||
|
||||
[node name="Node" type="Node" parent="." unique_id=1123170520]
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=624876315]
|
||||
environment = SubResource("Environment_y23i6")
|
||||
|
||||
[connection signal="body_entered" from="EnemyGoal/Area3D" to="EnemyGoal" method="_on_area_3d_body_entered"]
|
||||
11
Zones/Cave/zc_cave.tres
Normal file
11
Zones/Cave/zc_cave.tres
Normal file
@@ -0,0 +1,11 @@
|
||||
[gd_resource type="Resource" script_class="ZoneConfig" format=3 uid="uid://dicfpbrig37m8"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://csq7if8wojp4g" path="res://Zones/Cave/scn_cave.tscn" id="1_h1vei"]
|
||||
[ext_resource type="Script" uid="uid://q0vwwqs066g8" path="res://zone_config.gd" id="2_65j5w"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_65j5w")
|
||||
zone_name = "Cave"
|
||||
scene = ExtResource("1_h1vei")
|
||||
flow_field_data_path = "res://Zones/Cave/ffd_cave.json"
|
||||
metadata/_custom_type_script = "uid://q0vwwqs066g8"
|
||||
1
Zones/Moat/ffd_moat.json
Normal file
1
Zones/Moat/ffd_moat.json
Normal file
File diff suppressed because one or more lines are too long
BIN
Zones/Moat/mesh_moat.glb
Normal file
BIN
Zones/Moat/mesh_moat.glb
Normal file
Binary file not shown.
65
Zones/Moat/mesh_moat.glb.import
Normal file
65
Zones/Moat/mesh_moat.glb.import
Normal file
@@ -0,0 +1,65 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://ca174636iktc6"
|
||||
path="res://.godot/imported/mesh_moat.glb-33c7e2c89b597f9497e2c73179e915b8.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Zones/Moat/mesh_moat.glb"
|
||||
dest_files=["res://.godot/imported/mesh_moat.glb-33c7e2c89b597f9497e2c73179e915b8.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
nodes/use_name_suffixes=true
|
||||
nodes/use_node_type_suffixes=true
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=false
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=true
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
materials/extract=0
|
||||
materials/extract_format=0
|
||||
materials/extract_path=""
|
||||
_subresources={
|
||||
"materials": {
|
||||
"Dirt": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/fallback_path": "res://Materials/dirt1/dirt1.tres",
|
||||
"use_external/path": "uid://vu21wvwrmhlj"
|
||||
},
|
||||
"Grass": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/fallback_path": "res://Materials/grass1/grass1.tres",
|
||||
"use_external/path": "uid://c4qub458rqpt2"
|
||||
},
|
||||
"Material": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/fallback_path": "res://Materials/bricks1/bricks1.tres",
|
||||
"use_external/path": "uid://b7wnk32j3acfr"
|
||||
},
|
||||
"Material.002": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/fallback_path": "res://Materials/cobblestone1/cobblestone1.tres",
|
||||
"use_external/path": "uid://ci2m26g6b7ao5"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=1
|
||||
gltf/embedded_image_handling=1
|
||||
BIN
Zones/Moat/mesh_moat_bricks.png
Normal file
BIN
Zones/Moat/mesh_moat_bricks.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 527 B |
43
Zones/Moat/mesh_moat_bricks.png.import
Normal file
43
Zones/Moat/mesh_moat_bricks.png.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cgk5bsrx4on5g"
|
||||
path="res://.godot/imported/mesh_moat_bricks.png-c2ba537b406e30bb339b467fd403153a.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
generator_parameters={
|
||||
"md5": "bcdd6414a2f4ce476e1cfdafd881ca59"
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Zones/Moat/mesh_moat_bricks.png"
|
||||
dest_files=["res://.godot/imported/mesh_moat_bricks.png-c2ba537b406e30bb339b467fd403153a.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
Zones/Moat/mesh_moat_cobblestone.png
Normal file
BIN
Zones/Moat/mesh_moat_cobblestone.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 852 B |
43
Zones/Moat/mesh_moat_cobblestone.png.import
Normal file
43
Zones/Moat/mesh_moat_cobblestone.png.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://vqji3458oxk"
|
||||
path="res://.godot/imported/mesh_moat_cobblestone.png-2dc3858667c8d48b81ecde3ebb6fb3ec.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
generator_parameters={
|
||||
"md5": "4cb1f838ef5968fed908002c6419a080"
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Zones/Moat/mesh_moat_cobblestone.png"
|
||||
dest_files=["res://.godot/imported/mesh_moat_cobblestone.png-2dc3858667c8d48b81ecde3ebb6fb3ec.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
Zones/Moat/mesh_moat_grass.png
Normal file
BIN
Zones/Moat/mesh_moat_grass.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 441 B |
43
Zones/Moat/mesh_moat_grass.png.import
Normal file
43
Zones/Moat/mesh_moat_grass.png.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://r6t8tw8wdg0k"
|
||||
path="res://.godot/imported/mesh_moat_grass.png-ff8f81b04c8e8a850d68fcdbc1bd8b0b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
generator_parameters={
|
||||
"md5": "90c8db677a98042ac33135e89c44851a"
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Zones/Moat/mesh_moat_grass.png"
|
||||
dest_files=["res://.godot/imported/mesh_moat_grass.png-ff8f81b04c8e8a850d68fcdbc1bd8b0b.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
Zones/Moat/mesh_moat_level_tex.png
Normal file
BIN
Zones/Moat/mesh_moat_level_tex.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 433 B |
43
Zones/Moat/mesh_moat_level_tex.png.import
Normal file
43
Zones/Moat/mesh_moat_level_tex.png.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d3frq1qqxo6py"
|
||||
path="res://.godot/imported/mesh_moat_level_tex.png-7de3230baae0928690a37428dd1e0993.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
generator_parameters={
|
||||
"md5": "ba963c984781211fb82f1802a965d534"
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Zones/Moat/mesh_moat_level_tex.png"
|
||||
dest_files=["res://.godot/imported/mesh_moat_level_tex.png-7de3230baae0928690a37428dd1e0993.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
Zones/Moat/mesh_moat_wireframe.glb
Normal file
BIN
Zones/Moat/mesh_moat_wireframe.glb
Normal file
Binary file not shown.
50
Zones/Moat/mesh_moat_wireframe.glb.import
Normal file
50
Zones/Moat/mesh_moat_wireframe.glb.import
Normal file
@@ -0,0 +1,50 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://dxyx6rhy6fkc2"
|
||||
path="res://.godot/imported/mesh_moat_wireframe.glb-9e490e572edb5cc53b8d915a07d6a12d.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Zones/Moat/mesh_moat_wireframe.glb"
|
||||
dest_files=["res://.godot/imported/mesh_moat_wireframe.glb-9e490e572edb5cc53b8d915a07d6a12d.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
nodes/use_name_suffixes=true
|
||||
nodes/use_node_type_suffixes=true
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=false
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
materials/extract=0
|
||||
materials/extract_format=0
|
||||
materials/extract_path=""
|
||||
_subresources={
|
||||
"materials": {
|
||||
"Material.001": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/fallback_path": "res://Shaders/wireframe1.tres",
|
||||
"use_external/path": "uid://wr1vi6yfhxhg"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=2
|
||||
gltf/embedded_image_handling=1
|
||||
635
Zones/Moat/scn_moat.tscn
Normal file
635
Zones/Moat/scn_moat.tscn
Normal file
@@ -0,0 +1,635 @@
|
||||
[gd_scene format=3 uid="uid://y1qa1g3ic8sp"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cvejbo3srx8py" path="res://Scripts/level.gd" id="1_ws6nn"]
|
||||
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="2_ks6qx"]
|
||||
[ext_resource type="PackedScene" uid="uid://d2yv447trxkwt" path="res://Scenes/enemy_spawner.tscn" id="3_5imwp"]
|
||||
[ext_resource type="Resource" uid="uid://8eba45hql7bo" path="res://Enemies/EyeDog/eye_dog.tres" id="3_6tcu8"]
|
||||
[ext_resource type="Resource" uid="uid://bffhb5krs5elm" path="res://Enemies/Crystalisk/crystalisk.tres" id="4_uh5sr"]
|
||||
[ext_resource type="Resource" uid="uid://cvehqh4tt28g7" path="res://Enemies/BabyEyeDog/baby_eye_dog.tres" id="5_g08yk"]
|
||||
[ext_resource type="Resource" uid="uid://dxi17xvdlhkvc" path="res://Enemies/ElderEyeDog/elder_eye_dog.tres" id="6_asmpj"]
|
||||
[ext_resource type="PackedScene" uid="uid://d1gauy86jxpnj" path="res://BrickPile/brick_pile.tscn" id="7_6tcu8"]
|
||||
[ext_resource type="PackedScene" uid="uid://1b2ikdanl66b" path="res://Scenes/CardPrinter/card_printer.tscn" id="9_r25gu"]
|
||||
[ext_resource type="Script" uid="uid://cxwtuxytavfu5" path="res://Scripts/enemy_goal.gd" id="9_s3rd7"]
|
||||
[ext_resource type="Script" uid="uid://yk54owkf7pgj" path="res://Scripts/cinema_cam.gd" id="9_xuyhn"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://Audio/shot1.wav" id="11_l537x"]
|
||||
[ext_resource type="PackedScene" uid="uid://7g3jev3v6d3l" path="res://Scenes/ShopStand/shop_stand.tscn" id="19_h6brl"]
|
||||
[ext_resource type="PackedScene" uid="uid://42dsbdlkvbfq" path="res://Props/Tree1/tree1.tscn" id="20_j6d65"]
|
||||
[ext_resource type="PackedScene" uid="uid://cmneu5o0m02l8" path="res://Worlds/GreenPlanet/Enemies/leaping_enemy.tscn" id="20_ttr7n"]
|
||||
[ext_resource type="PackedScene" uid="uid://c8ecof4oeng1f" path="res://Props/BigTree1/big_tree.tscn" id="21_6tcu8"]
|
||||
[ext_resource type="PackedScene" uid="uid://c6isprnkaliqr" path="res://Scenes/MixingTable/remix_table.tscn" id="21_ks6qx"]
|
||||
[ext_resource type="Script" uid="uid://cy6oj2hr8q8br" path="res://Scripts/killbox.gd" id="26_tuncf"]
|
||||
[ext_resource type="PackedScene" uid="uid://c2avjln5vmr0y" path="res://Scenes/Shredder/shredder.tscn" id="27_gppb4"]
|
||||
[ext_resource type="Texture2D" uid="uid://dqrfgw65d0sq8" path="res://Assets/Textures/bridge_map.png" id="28_6od8s"]
|
||||
[ext_resource type="PackedScene" uid="uid://ca174636iktc6" path="res://Zones/Moat/mesh_moat.glb" id="30_ttr7n"]
|
||||
|
||||
[sub_resource type="Curve3D" id="Curve3D_3rdl2"]
|
||||
_data = {
|
||||
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 12.3765, 1.00006, -13.0874, 0, 0, 0, 0, 0, 0, -13.1528, 5.17887, -14.4739),
|
||||
"tilts": PackedFloat32Array(0, 0)
|
||||
}
|
||||
point_count = 2
|
||||
|
||||
[sub_resource type="Curve3D" id="Curve3D_2yu5t"]
|
||||
_data = {
|
||||
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 7.20375, 0.376301, -5.50257, 0, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
"tilts": PackedFloat32Array(0, 0)
|
||||
}
|
||||
point_count = 2
|
||||
|
||||
[sub_resource type="Curve3D" id="Curve3D_tuqlc"]
|
||||
_data = {
|
||||
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, -19.16, 4.995, -7.5, 0, 0, 0, 0, 0, 0, 8.763, 5.707, -7.5),
|
||||
"tilts": PackedFloat32Array(0, 0)
|
||||
}
|
||||
point_count = 2
|
||||
|
||||
[sub_resource type="Shader" id="Shader_6od8s"]
|
||||
code = "shader_type sky;
|
||||
render_mode use_debanding;
|
||||
|
||||
uniform vec4 sky_top_color : source_color = vec4(0.385, 0.454, 0.55, 1.0);
|
||||
uniform vec4 sky_horizon_color : source_color = vec4(0.646, 0.656, 0.67, 1.0);
|
||||
uniform float sky_curve : hint_range(0, 1) = 0.15;
|
||||
uniform float sky_energy = 1.0; // In Lux.
|
||||
uniform sampler2D sky_cover : filter_linear, source_color, hint_default_black;
|
||||
uniform vec4 sky_cover_modulate : source_color = vec4(1.0, 1.0, 1.0, 1.0);
|
||||
uniform vec4 ground_bottom_color : source_color = vec4(0.2, 0.169, 0.133, 1.0);
|
||||
uniform vec4 ground_horizon_color : source_color = vec4(0.646, 0.656, 0.67, 1.0);
|
||||
uniform float ground_curve : hint_range(0, 1) = 0.02;
|
||||
uniform float ground_energy = 1.0;
|
||||
uniform float sun_angle_max = 30.0;
|
||||
uniform float sun_curve : hint_range(0, 1) = 0.15;
|
||||
uniform float exposure : hint_range(0, 128) = 1.0;
|
||||
|
||||
// Wind offset direction (x and y only)
|
||||
uniform vec2 wind_offset_direction = vec2(0.5, 0.1); // Control direction of offset (x, y)
|
||||
uniform float wind_speed : hint_range(0.0, 25.0) = 1.0; // Speed of the noise movement over time
|
||||
|
||||
// Cloud change settings
|
||||
uniform bool clouds_change = true; // Whether to change the cloud layer or not
|
||||
uniform float cloud_change_rate : hint_range(0.0, 5.0) = .40; // Rate at which the cloud effect changes
|
||||
|
||||
// Pole blending parameters
|
||||
uniform float pole_blend_shape : hint_range(0.0, 2.0) = 0.05; // How much the noise affects the blend shape
|
||||
uniform float pole_blend_strength : hint_range(0, 1) = 0.05; // Control blending intensity at poles
|
||||
uniform float pole_blend_brightness : hint_range(0.0, 1.0) = .3;
|
||||
|
||||
// Horizon blending parameters - similar to pole blending
|
||||
uniform float horizon_blend_shape : hint_range(0.0, 2.0) = 0.05; // How much the noise affects the horizon blend shape
|
||||
uniform float horizon_blend_strength : hint_range(0, 1) = 0.05; // Control blending intensity at horizon
|
||||
uniform float horizon_blend_brightness : hint_range(0.0, 1.0) = .3;
|
||||
uniform float horizon_blend_width : hint_range(0.0, 0.5) = 0.1; // Width of the horizon blend region
|
||||
|
||||
void sky() {
|
||||
float v_angle = acos(clamp(EYEDIR.y, -1.0, 1.0));
|
||||
float c = (1.0 - v_angle / (PI * 0.5));
|
||||
vec3 sky = mix(sky_horizon_color.rgb, sky_top_color.rgb, clamp(1.0 - pow(1.0 - c, 1.0 / sky_curve), 0.0, 1.0));
|
||||
sky *= sky_energy;
|
||||
|
||||
if (LIGHT0_ENABLED) {
|
||||
float sun_angle = acos(dot(LIGHT0_DIRECTION, EYEDIR));
|
||||
if (sun_angle < LIGHT0_SIZE) {
|
||||
sky = LIGHT0_COLOR * LIGHT0_ENERGY;
|
||||
} else if (sun_angle < sun_angle_max) {
|
||||
float c2 = (sun_angle - LIGHT0_SIZE) / (sun_angle_max - LIGHT0_SIZE);
|
||||
sky = mix(LIGHT0_COLOR * LIGHT0_ENERGY, sky, clamp(1.0 - pow(1.0 - c2, 1.0 / sun_curve), 0.0, 1.0));
|
||||
}
|
||||
}
|
||||
|
||||
if (LIGHT1_ENABLED) {
|
||||
float sun_angle = acos(dot(LIGHT1_DIRECTION, EYEDIR));
|
||||
if (sun_angle < LIGHT1_SIZE) {
|
||||
sky = LIGHT1_COLOR * LIGHT1_ENERGY;
|
||||
} else if (sun_angle < sun_angle_max) {
|
||||
float c2 = (sun_angle - LIGHT1_SIZE) / (sun_angle_max - LIGHT1_SIZE);
|
||||
sky = mix(LIGHT1_COLOR * LIGHT1_ENERGY, sky, clamp(1.0 - pow(1.0 - c2, 1.0 / sun_curve), 0.0, 1.0));
|
||||
}
|
||||
}
|
||||
|
||||
if (LIGHT2_ENABLED) {
|
||||
float sun_angle = acos(dot(LIGHT2_DIRECTION, EYEDIR));
|
||||
if (sun_angle < LIGHT2_SIZE) {
|
||||
sky = LIGHT2_COLOR * LIGHT2_ENERGY;
|
||||
} else if (sun_angle < sun_angle_max) {
|
||||
float c2 = (sun_angle - LIGHT2_SIZE) / (sun_angle_max - LIGHT2_SIZE);
|
||||
sky = mix(LIGHT2_COLOR * LIGHT2_ENERGY, sky, clamp(1.0 - pow(1.0 - c2, 1.0 / sun_curve), 0.0, 1.0));
|
||||
}
|
||||
}
|
||||
|
||||
if (LIGHT3_ENABLED) {
|
||||
float sun_angle = acos(dot(LIGHT3_DIRECTION, EYEDIR));
|
||||
if (sun_angle < LIGHT3_SIZE) {
|
||||
sky = LIGHT3_COLOR * LIGHT3_ENERGY;
|
||||
} else if (sun_angle < sun_angle_max) {
|
||||
float c2 = (sun_angle - LIGHT3_SIZE) / (sun_angle_max - LIGHT3_SIZE);
|
||||
sky = mix(LIGHT3_COLOR * LIGHT3_ENERGY, sky, clamp(1.0 - pow(1.0 - c2, 1.0 / sun_curve), 0.0, 1.0));
|
||||
}
|
||||
}
|
||||
|
||||
// Sample the sky cover texture with dynamic offset (only x and y direction)
|
||||
vec2 noise_coords = SKY_COORDS.xy + wind_offset_direction * wind_speed * TIME * 0.01;
|
||||
|
||||
// Wrap UVs to keep tiling seamless
|
||||
noise_coords = mod(noise_coords, 1.0);
|
||||
|
||||
// Sample the original noise texture
|
||||
vec4 sky_cover_texture = texture(sky_cover, noise_coords);
|
||||
|
||||
// Sample flipped noise for Z-offset effect
|
||||
vec4 flipped_noise = texture(sky_cover, vec2(noise_coords.x, 1.0 - noise_coords.y));
|
||||
|
||||
// Z blending (cloud change) logic
|
||||
float cloud_blend_factor = 0.0;
|
||||
if (clouds_change) {
|
||||
// Use a sine wave to blend clouds smoothly over time based on the cloud_change_rate
|
||||
cloud_blend_factor = 0.5 + 0.5 * sin(TIME * cloud_change_rate);
|
||||
}
|
||||
|
||||
// Blend between the original and flipped noise using cloud_blend_factor
|
||||
vec4 blended_noise_texture = mix(sky_cover_texture, flipped_noise, cloud_blend_factor);
|
||||
|
||||
// Pole blending
|
||||
float base_pole_blend_factor = abs(EYEDIR.y); // Original blend factor (circular)
|
||||
float noise_pole_blend = blended_noise_texture.r * pole_blend_shape;
|
||||
float pole_blend_factor = smoothstep(1.0 - pole_blend_strength, 1.0, base_pole_blend_factor + noise_pole_blend);
|
||||
|
||||
// Horizon blending - detect when we're near the horizon
|
||||
float horizon_distance = abs(EYEDIR.y); // This will be close to 0 near the horizon
|
||||
float horizon_factor = 1.0 - smoothstep(0.0, horizon_blend_width, horizon_distance);
|
||||
float noise_horizon_blend = blended_noise_texture.g * horizon_blend_shape;
|
||||
float horizon_blend_factor = smoothstep(1.0 - horizon_blend_strength, 1.0, horizon_factor + noise_horizon_blend);
|
||||
|
||||
// Combine both blend factors (poles and horizon)
|
||||
float combined_blend_factor = max(pole_blend_factor, horizon_blend_factor);
|
||||
|
||||
// Blend noise with brightness value based on the combined factor
|
||||
vec3 blended_noise = mix(blended_noise_texture.rgb, vec3(pole_blend_brightness), pole_blend_factor);
|
||||
blended_noise = mix(blended_noise, vec3(horizon_blend_brightness), horizon_blend_factor);
|
||||
|
||||
sky += (blended_noise * sky_cover_modulate.rgb) * blended_noise_texture.a * sky_cover_modulate.a * sky_energy;
|
||||
|
||||
// Ground blending
|
||||
c = (v_angle - (PI * 0.5)) / (PI * 0.5);
|
||||
vec3 ground = mix(ground_horizon_color.rgb, ground_bottom_color.rgb, clamp(1.0 - pow(1.0 - c, 1.0 / ground_curve), 0.0, 1.0));
|
||||
ground *= ground_energy;
|
||||
|
||||
COLOR = mix(ground, sky, step(0.0, EYEDIR.y)) * exposure;
|
||||
}"
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_dj4cy"]
|
||||
offsets = PackedFloat32Array(0.151786, 0.5625, 1)
|
||||
colors = PackedColorArray(0, 0, 0, 1, 0.565217, 0.565217, 0.565217, 1, 1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_ttr7n"]
|
||||
noise_type = 3
|
||||
domain_warp_enabled = true
|
||||
|
||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_r4es0"]
|
||||
width = 1024
|
||||
height = 1024
|
||||
noise = SubResource("FastNoiseLite_ttr7n")
|
||||
color_ramp = SubResource("Gradient_dj4cy")
|
||||
seamless = true
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_4gdda"]
|
||||
shader = SubResource("Shader_6od8s")
|
||||
shader_parameter/sky_top_color = Color(0.25262, 0.408375, 0.692798, 1)
|
||||
shader_parameter/sky_horizon_color = Color(0.48476, 0.638261, 0.884351, 1)
|
||||
shader_parameter/sky_curve = 0.0349887
|
||||
shader_parameter/sky_energy = 1.0
|
||||
shader_parameter/sky_cover = SubResource("NoiseTexture2D_r4es0")
|
||||
shader_parameter/sky_cover_modulate = Color(1, 1, 1, 1)
|
||||
shader_parameter/ground_bottom_color = Color(0.121409, 0.203944, 0.437026, 1)
|
||||
shader_parameter/ground_horizon_color = Color(0.486275, 0.639216, 0.882353, 1)
|
||||
shader_parameter/ground_curve = 0.02
|
||||
shader_parameter/ground_energy = 1.0
|
||||
shader_parameter/sun_angle_max = 0.523599
|
||||
shader_parameter/sun_curve = 0.15
|
||||
shader_parameter/exposure = 1.0
|
||||
shader_parameter/wind_offset_direction = Vector2(0.5, 0.1)
|
||||
shader_parameter/wind_speed = 0.0
|
||||
shader_parameter/clouds_change = true
|
||||
shader_parameter/cloud_change_rate = 0.4
|
||||
shader_parameter/pole_blend_shape = 0.05
|
||||
shader_parameter/pole_blend_strength = 0.05
|
||||
shader_parameter/pole_blend_brightness = 0.3
|
||||
shader_parameter/horizon_blend_shape = 0.05
|
||||
shader_parameter/horizon_blend_strength = 0.05
|
||||
shader_parameter/horizon_blend_brightness = 0.3
|
||||
shader_parameter/horizon_blend_width = 0.1
|
||||
|
||||
[sub_resource type="Sky" id="Sky_t42h5"]
|
||||
sky_material = SubResource("ShaderMaterial_4gdda")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_l41d0"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_t42h5")
|
||||
tonemap_mode = 4
|
||||
ssao_detail = 0.0
|
||||
fog_enabled = true
|
||||
fog_mode = 1
|
||||
fog_density = 1.0
|
||||
fog_depth_begin = 50.0
|
||||
fog_depth_end = 200.0
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_awjk1"]
|
||||
size = Vector3(3.6270146, 6.87512, 10)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_134um"]
|
||||
size = Vector3(70.0478, 1, 73.4615)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fi8e6"]
|
||||
transparency = 1
|
||||
albedo_color = Color(0, 0, 0, 0.88400006)
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_j6d65"]
|
||||
material = SubResource("StandardMaterial3D_fi8e6")
|
||||
size = Vector2(7.84, 3.69)
|
||||
|
||||
[node name="Bridge" type="Node3D" unique_id=1906077552 node_paths=PackedStringArray("tower_path", "player_spawns", "enemy_spawns", "enemy_goals", "corpses", "cinematic_cam", "printer", "shop")]
|
||||
script = ExtResource("1_ws6nn")
|
||||
enemy_pool = Array[ExtResource("2_ks6qx")]([ExtResource("3_6tcu8"), ExtResource("6_asmpj"), ExtResource("5_g08yk"), ExtResource("4_uh5sr")])
|
||||
tower_path = NodePath("Towers")
|
||||
player_spawns = [NodePath("PlayerSpawnLocations/PlayerSpawn1"), NodePath("PlayerSpawnLocations/PlayerSpawn2"), NodePath("PlayerSpawnLocations/PlayerSpawn3"), NodePath("PlayerSpawnLocations/PlayerSpawn4")]
|
||||
enemy_spawns = [NodePath("GroundSpawn"), NodePath("GroundSpawn2"), NodePath("GroundSpawn3"), NodePath("GroundSpawn4"), NodePath("GroundSpawn5"), NodePath("AirSpawn")]
|
||||
enemy_goals = [NodePath("EnemyGoal")]
|
||||
corpses = NodePath("Corpses")
|
||||
cinematic_cam = NodePath("CinemaCam")
|
||||
printer = NodePath("CardPrinter")
|
||||
shop = NodePath("ShopStand")
|
||||
obstacles = Array[PackedScene]([ExtResource("7_6tcu8")])
|
||||
data_path = "res://Worlds/GreenPlanet/Levels/Bridge/level1.json"
|
||||
metadata/_custom_type_script = "uid://cvejbo3srx8py"
|
||||
metadata/_editor_floor_ = Vector3(4, -10, 8)
|
||||
|
||||
[node name="CinemaCam" type="Node3D" parent="." unique_id=1916778526 node_paths=PackedStringArray("path_follows", "cameras")]
|
||||
script = ExtResource("9_xuyhn")
|
||||
path_follows = [NodePath("Path3D/PathFollow3D"), NodePath("Path3D2/PathFollow3D2"), NodePath("Path3D3/PathFollow3D2")]
|
||||
cameras = [NodePath("Path3D/PathFollow3D/Camera3D"), NodePath("Path3D2/PathFollow3D2/Camera3D2"), NodePath("Path3D3/PathFollow3D2/Camera3D2")]
|
||||
pan_speed = 0.1
|
||||
|
||||
[node name="Path3D" type="Path3D" parent="CinemaCam" unique_id=869538998]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.63136, 4.35346, 7.28324)
|
||||
curve = SubResource("Curve3D_3rdl2")
|
||||
|
||||
[node name="PathFollow3D" type="PathFollow3D" parent="CinemaCam/Path3D" unique_id=342701727]
|
||||
transform = Transform3D(0.054230012, 0.1610678, 0.98545, -7.4505473e-09, 0.98690206, -0.16130519, -0.998524, 0.008747612, 0.05351996, 12.3765, 1.00006, -13.0874)
|
||||
loop = false
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="CinemaCam/Path3D/PathFollow3D" unique_id=948474223]
|
||||
transform = Transform3D(0.377958, -0.631677, 0.676854, -0.157445, 0.676581, 0.71934, -0.912337, -0.378447, 0.156264, 0, 0, 0)
|
||||
cull_mask = 1
|
||||
current = true
|
||||
|
||||
[node name="Path3D2" type="Path3D" parent="CinemaCam" unique_id=548120520]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.63136, 4.35346, 7.28324)
|
||||
curve = SubResource("Curve3D_2yu5t")
|
||||
|
||||
[node name="PathFollow3D2" type="PathFollow3D" parent="CinemaCam/Path3D2" unique_id=604465440]
|
||||
transform = Transform3D(-0.60701805, -0.03296049, 0.7939957, 0, 0.999137, 0.04147582, -0.79468393, 0.025176814, -0.6064923, 7.20375, 0.376301, -5.50257)
|
||||
loop = false
|
||||
|
||||
[node name="Camera3D2" type="Camera3D" parent="CinemaCam/Path3D2/PathFollow3D2" unique_id=794825922]
|
||||
transform = Transform3D(-0.107807, 0.47109, -0.875476, -0.0383335, 0.877983, 0.47716, 0.993435, 0.0850012, -0.0765942, 0, 0, 0)
|
||||
cull_mask = 1
|
||||
|
||||
[node name="Path3D3" type="Path3D" parent="CinemaCam" unique_id=130837030]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.63136, 4.35346, 7.28324)
|
||||
curve = SubResource("Curve3D_tuqlc")
|
||||
|
||||
[node name="PathFollow3D2" type="PathFollow3D" parent="CinemaCam/Path3D3" unique_id=371544590]
|
||||
transform = Transform3D(-4.3711214e-08, -0.02548992, -0.99965, 0, 0.999656, -0.025489768, 0.999996, -1.1141998e-09, -4.3696087e-08, 8.762999, 5.707, -7.5)
|
||||
progress = 27.9321
|
||||
loop = false
|
||||
|
||||
[node name="Camera3D2" type="Camera3D" parent="CinemaCam/Path3D3/PathFollow3D2" unique_id=896616690]
|
||||
transform = Transform3D(3.27007e-05, 0.999663, -0.0260566, -0.00250896, 0.0260566, 0.99966, 0.999999, 3.26858e-05, 0.00250896, 0, 0, 0)
|
||||
cull_mask = 1
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1448536340]
|
||||
environment = SubResource("Environment_l41d0")
|
||||
|
||||
[node name="EnemyGoal" type="Node3D" parent="." unique_id=1521533989 node_paths=PackedStringArray("audio_player")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40.123978, 0.5, 0)
|
||||
script = ExtResource("9_s3rd7")
|
||||
audio_player = NodePath("AudioStreamPlayer3D")
|
||||
|
||||
[node name="Area3D" type="Area3D" parent="EnemyGoal" unique_id=80277049]
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="EnemyGoal/Area3D" unique_id=1234164927]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.40402222, 3.43756, 0)
|
||||
shape = SubResource("BoxShape3D_awjk1")
|
||||
|
||||
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="EnemyGoal" unique_id=1838624313]
|
||||
stream = ExtResource("11_l537x")
|
||||
|
||||
[node name="GroundSpawn" parent="." unique_id=185953135 node_paths=PackedStringArray("dest", "enemy_path") instance=ExtResource("3_5imwp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -43.4011, 0.5, 0)
|
||||
leap_enemy_scene = ExtResource("20_ttr7n")
|
||||
type = 1
|
||||
dest = NodePath("../EnemyGoal")
|
||||
enemy_path = NodePath("../Enemies")
|
||||
|
||||
[node name="GroundSpawn2" parent="." unique_id=1956318080 node_paths=PackedStringArray("dest", "enemy_path") instance=ExtResource("3_5imwp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -40.9011, 0.5, -5)
|
||||
leap_enemy_scene = ExtResource("20_ttr7n")
|
||||
own_id = 1
|
||||
type = 1
|
||||
dest = NodePath("../EnemyGoal")
|
||||
enemy_path = NodePath("../Enemies")
|
||||
|
||||
[node name="GroundSpawn3" parent="." unique_id=1447527413 node_paths=PackedStringArray("dest", "enemy_path") instance=ExtResource("3_5imwp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -40.9011, 0.5, 5)
|
||||
leap_enemy_scene = ExtResource("20_ttr7n")
|
||||
own_id = 2
|
||||
type = 1
|
||||
dest = NodePath("../EnemyGoal")
|
||||
enemy_path = NodePath("../Enemies")
|
||||
|
||||
[node name="GroundSpawn4" parent="." unique_id=623589346 node_paths=PackedStringArray("dest", "enemy_path") instance=ExtResource("3_5imwp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -38.4011, 0.5, 10)
|
||||
leap_enemy_scene = ExtResource("20_ttr7n")
|
||||
own_id = 3
|
||||
type = 1
|
||||
dest = NodePath("../EnemyGoal")
|
||||
enemy_path = NodePath("../Enemies")
|
||||
|
||||
[node name="GroundSpawn5" parent="." unique_id=29660902 node_paths=PackedStringArray("dest", "enemy_path") instance=ExtResource("3_5imwp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -38.4011, 0.5, -10)
|
||||
leap_enemy_scene = ExtResource("20_ttr7n")
|
||||
own_id = 4
|
||||
type = 1
|
||||
dest = NodePath("../EnemyGoal")
|
||||
enemy_path = NodePath("../Enemies")
|
||||
|
||||
[node name="AirSpawn" parent="." unique_id=727755035 node_paths=PackedStringArray("dest", "enemy_path") instance=ExtResource("3_5imwp")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -55.3737, 19.0055, 0)
|
||||
leap_enemy_scene = ExtResource("20_ttr7n")
|
||||
own_id = 5
|
||||
type = 2
|
||||
dest = NodePath("../EnemyGoal")
|
||||
enemy_path = NodePath("../Enemies")
|
||||
|
||||
[node name="CardPrinter" parent="." unique_id=99304729 instance=ExtResource("9_r25gu")]
|
||||
transform = Transform3D(-0.999501, 0, 0.0315681, 0, 1, 0, -0.0315681, 0, -0.999501, 33.0068, 0.499996, 17.3317)
|
||||
|
||||
[node name="PlayerSpawnLocations" type="Node3D" parent="." unique_id=1727305710]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27.9469, 0, 0)
|
||||
|
||||
[node name="PlayerSpawn1" type="Node3D" parent="PlayerSpawnLocations" unique_id=459580946]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 1, -1)
|
||||
|
||||
[node name="PlayerSpawn2" type="Node3D" parent="PlayerSpawnLocations" unique_id=1118849231]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, -1)
|
||||
|
||||
[node name="PlayerSpawn3" type="Node3D" parent="PlayerSpawnLocations" unique_id=955469427]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 1, 1)
|
||||
|
||||
[node name="PlayerSpawn4" type="Node3D" parent="PlayerSpawnLocations" unique_id=1147746758]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1)
|
||||
|
||||
[node name="Towers" type="Node" parent="." unique_id=395246047]
|
||||
|
||||
[node name="Enemies" type="Node" parent="." unique_id=1907693342]
|
||||
|
||||
[node name="Corpses" type="Node" parent="." unique_id=395596684]
|
||||
|
||||
[node name="ShopStand" parent="." unique_id=1199389479 instance=ExtResource("19_h6brl")]
|
||||
transform = Transform3D(0.997252, 0, -0.074091, 0, 1, 0, 0.074091, 0, 0.997252, 33.0364, 0.415816, -15.8576)
|
||||
|
||||
[node name="Killbox" type="Area3D" parent="." unique_id=1282606330]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.77224, 0, 0)
|
||||
collision_mask = 2
|
||||
script = ExtResource("26_tuncf")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Killbox" unique_id=1079628314]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0668106, -6.8471, 0.829394)
|
||||
shape = SubResource("BoxShape3D_134um")
|
||||
|
||||
[node name="Shredder" parent="." unique_id=964733986 instance=ExtResource("27_gppb4")]
|
||||
transform = Transform3D(0.748886, 0, 0.662699, 0, 1, 0, -0.662699, 0, 0.748886, 34.8662, 0.5, 16.6183)
|
||||
|
||||
[node name="bridge" parent="." unique_id=142248090 instance=ExtResource("30_ttr7n")]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 2.5, 0)
|
||||
|
||||
[node name="Sprite3D" type="Sprite3D" parent="." unique_id=1926664882]
|
||||
transform = Transform3D(-3.62805e-07, -8.3, -3.62805e-07, 0, -3.62805e-07, 8.3, -8.3, 3.62805e-07, 1.58587e-14, 2.93077, -74.4698, -10.0351)
|
||||
layers = 4
|
||||
texture = ExtResource("28_6od8s")
|
||||
|
||||
[node name="Node3D" parent="." unique_id=126006136 instance=ExtResource("21_ks6qx")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.507853, 1.00142, 15.890633)
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="." unique_id=1062008196]
|
||||
transform = Transform3D(-1.8440034e-08, -0.4218588, 0.9066615, 1, -4.371139e-08, 0, 3.9631438e-08, 0.9066615, 0.4218588, 43.105564, 4.321371, 0.018272102)
|
||||
mesh = SubResource("PlaneMesh_j6d65")
|
||||
|
||||
[node name="MeshInstance3D2" type="MeshInstance3D" parent="." unique_id=1822263082]
|
||||
transform = Transform3D(-1.8440034e-08, -0.4218588, 0.9066615, 1, -4.371139e-08, 0, 3.9631438e-08, 0.9066615, 0.4218588, 43.268147, 4.3213706, -0.3644483)
|
||||
mesh = SubResource("PlaneMesh_j6d65")
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="." unique_id=700591494]
|
||||
transform = Transform3D(-1.8440034e-08, -0.4218588, 0.9066615, 1, -4.371139e-08, 0, 3.9631438e-08, 0.9066615, 0.4218588, 43.481457, 4.321371, -0.7146716)
|
||||
mesh = SubResource("PlaneMesh_j6d65")
|
||||
|
||||
[node name="Node3D2" parent="." unique_id=1308989582 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.224361, 0.4761952, -18.135468)
|
||||
|
||||
[node name="Node3D3" parent="." unique_id=1690645570 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 25.587107, 0.46557888, -27.875065)
|
||||
|
||||
[node name="Node3D4" parent="." unique_id=1327637421 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 36.907898, 0.44084343, -21.990316)
|
||||
|
||||
[node name="Node3D5" parent="." unique_id=230347725 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40.84733, 0.5889649, -31.607025)
|
||||
|
||||
[node name="Node3D6" parent="." unique_id=1973047055 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 31.346336, 0.54343265, -36.820988)
|
||||
|
||||
[node name="Node3D7" parent="." unique_id=1301725987 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 39.10933, 0.4997559, -44.815544)
|
||||
|
||||
[node name="Node3D8" parent="." unique_id=741554650 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 46.75648, 0.5390221, -35.77816)
|
||||
|
||||
[node name="Node3D9" parent="." unique_id=1620137906 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27.63861, 0.4997559, -45.163143)
|
||||
|
||||
[node name="Node3D10" parent="." unique_id=1927933348 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21.594902, 0.50024414, 20.536465)
|
||||
|
||||
[node name="Node3D11" parent="." unique_id=1153656148 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.11367, 0.49975586, 31.080257)
|
||||
|
||||
[node name="Node3D12" parent="." unique_id=388515575 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 35.498802, 0.50024414, 23.78071)
|
||||
|
||||
[node name="Node3D13" parent="." unique_id=946880915 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 44.304604, 0.49975586, 31.659586)
|
||||
|
||||
[node name="Node3D14" parent="." unique_id=44861647 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 35.151207, 0.49975586, 39.19087)
|
||||
|
||||
[node name="Node3D15" parent="." unique_id=1963401289 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 25.418476, 0.5, 48.9236)
|
||||
|
||||
[node name="Node3D16" parent="." unique_id=189765011 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 47.201256, 0.5, 48.112537)
|
||||
|
||||
[node name="Node3D17" parent="." unique_id=822369781 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 37.46852, 0.50024414, 55.991417)
|
||||
|
||||
[node name="Node3D18" parent="." unique_id=854045144 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.470535, 0.5, 68.440926)
|
||||
|
||||
[node name="Node3D19" parent="." unique_id=682749810 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45.069633, 0.5, 69.94718)
|
||||
|
||||
[node name="Node3D20" parent="." unique_id=71921146 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50.978783, 0.50024414, 59.51925)
|
||||
|
||||
[node name="Node3D21" parent="." unique_id=1793888043 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 62.21778, 0.50024414, 56.043278)
|
||||
|
||||
[node name="Node3D22" parent="." unique_id=1455192438 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34.513584, 0.4999962, 47.89573)
|
||||
|
||||
[node name="Node3D23" parent="." unique_id=935618276 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -31.30091, 0.5105507, -21.674778)
|
||||
|
||||
[node name="Node3D24" parent="." unique_id=155852678 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.446053, 0.53638685, 21.657467)
|
||||
|
||||
[node name="Node3D25" parent="." unique_id=816059691 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -43.118107, 0.5080446, 18.372576)
|
||||
|
||||
[node name="Node3D26" parent="." unique_id=437001636 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -42.85219, 0.5229174, 0.18147068)
|
||||
|
||||
[node name="Node3D27" parent="." unique_id=1892658881 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -43.76916, 0.49785048, -17.150803)
|
||||
|
||||
[node name="Node3D28" parent="." unique_id=1156705160 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -40.41119, 0.4923253, -34.296783)
|
||||
|
||||
[node name="Node3D29" parent="." unique_id=750373363 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -25.247744, 0.5000038, -42.16417)
|
||||
|
||||
[node name="Node3D30" parent="." unique_id=708424631 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -46.97228, 0.47527015, 33.060688)
|
||||
|
||||
[node name="Node3D31" parent="." unique_id=1263955525 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -32.53309, 0.5000076, 40.484997)
|
||||
|
||||
[node name="Node3D32" parent="." unique_id=1585698362 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37.465153, 0.49999237, 29.276081)
|
||||
|
||||
[node name="Node3D33" parent="." unique_id=1084838108 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22.386686, 0.5, 48.122066)
|
||||
|
||||
[node name="Node3D34" parent="." unique_id=1947206628 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -55.095715, 0.44609505, -31.926006)
|
||||
|
||||
[node name="Node3D35" parent="." unique_id=1870319773 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37.858974, 0.558814, -53.344746)
|
||||
|
||||
[node name="Node3D36" parent="." unique_id=1380019723 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -59.767483, 3.1326103, 21.137033)
|
||||
|
||||
[node name="Node3D37" parent="." unique_id=1210106385 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -54.233166, 0.4477323, 45.20006)
|
||||
|
||||
[node name="Node3D38" parent="." unique_id=156247092 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -56.046036, 0.44310805, -15.098809)
|
||||
|
||||
[node name="Node3D39" parent="." unique_id=840324985 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -25.702923, 0.5000076, -30.843634)
|
||||
|
||||
[node name="Node3D51" parent="." unique_id=764243657 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(0.8188817, 0, 0.5739624, 0, 1, 0, -0.5739624, 0, 0.8188817, -35.15997, 0.5000076, -41.164284)
|
||||
|
||||
[node name="Node3D52" parent="." unique_id=1439508441 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(0.95698595, 0, 0.29013434, 0, 1, 0, -0.29013434, 0, 0.95698595, -49.691605, 0.5000076, -50.03118)
|
||||
|
||||
[node name="Node3D53" parent="." unique_id=282779260 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(0.95698595, 0, 0.29013434, 0, 1, 0, -0.29013434, 0, 0.95698595, -50.111214, 0.5000076, -38.795647)
|
||||
|
||||
[node name="Node3D54" parent="." unique_id=665662464 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(0.95698595, 0, 0.29013434, 0, 1, 0, -0.29013434, 0, 0.95698595, -43.064415, 0.5000076, -26.649086)
|
||||
|
||||
[node name="Node3D55" parent="." unique_id=1505468139 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(0.95698595, 0, 0.29013434, 0, 1, 0, -0.29013434, 0, 0.95698595, -54.03443, 0.5000076, -21.495655)
|
||||
|
||||
[node name="Node3D56" parent="." unique_id=1991778696 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(0.95698595, 0, 0.29013434, 0, 1, 0, -0.29013434, 0, 0.95698595, -54.10995, 0.5000038, 9.923689)
|
||||
|
||||
[node name="Node3D57" parent="." unique_id=518331014 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(0.95698595, 0, 0.29013434, 0, 1, 0, -0.29013434, 0, 0.95698595, -44.40436, 0.5000038, 10.869652)
|
||||
|
||||
[node name="Node3D58" parent="." unique_id=254142817 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(0.95698595, 0, 0.29013434, 0, 1, 0, -0.29013434, 0, 0.95698595, -39.892178, 0.5000038, -9.111635)
|
||||
|
||||
[node name="Node3D59" parent="." unique_id=1060332407 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(0.97183365, 0, -0.235668, 0, 1, 0, 0.235668, 0, 0.97183365, -52.973858, 0.5000038, 24.044119)
|
||||
|
||||
[node name="Node3D60" parent="." unique_id=99980510 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(0.97183365, 0, -0.235668, 0, 1, 0, 0.235668, 0, 0.97183365, -59.165073, 0.5000038, 31.510038)
|
||||
|
||||
[node name="Node3D61" parent="." unique_id=324643734 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(0.97183365, 0, -0.235668, 0, 1, 0, 0.235668, 0, 0.97183365, -45.115986, 0.5000038, 25.99969)
|
||||
|
||||
[node name="Node3D62" parent="." unique_id=992902587 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(0.97183365, 0, -0.235668, 0, 1, 0, 0.235668, 0, 0.97183365, -28.229023, 0.5000038, 30.226183)
|
||||
|
||||
[node name="Node3D63" parent="." unique_id=845806636 instance=ExtResource("20_j6d65")]
|
||||
transform = Transform3D(0.97183365, 0, -0.235668, 0, 1, 0, 0.235668, 0, 0.97183365, -41.31883, 0.5000038, 38.7666)
|
||||
|
||||
[node name="Node3D40" parent="." unique_id=2029189640 instance=ExtResource("21_6tcu8")]
|
||||
transform = Transform3D(0.5407249, 0, 0.8411995, 0, 1, 0, -0.8411995, 0, 0.5407249, -56.844105, -1.9073486e-06, 0.5303469)
|
||||
|
||||
[node name="Node3D64" parent="." unique_id=2118525412 instance=ExtResource("21_6tcu8")]
|
||||
transform = Transform3D(0.5407249, 0, 0.8411995, 0, 1, 0, -0.8411995, 0, 0.5407249, -74.354294, -1.9073486e-06, -22.119095)
|
||||
|
||||
[node name="Node3D65" parent="." unique_id=1480954632 instance=ExtResource("21_6tcu8")]
|
||||
transform = Transform3D(-0.6952358, 0, 0.7187818, 0, 1, 0, -0.7187818, 0, -0.6952358, -71.38766, -3.8146973e-06, 46.537483)
|
||||
|
||||
[node name="Node3D66" parent="." unique_id=581600124 instance=ExtResource("21_6tcu8")]
|
||||
transform = Transform3D(-0.6952358, 0, 0.7187818, 0, 1, 0, -0.7187818, 0, -0.6952358, -88.39658, -3.8146973e-06, 7.2917747)
|
||||
|
||||
[node name="Node3D67" parent="." unique_id=906440781 instance=ExtResource("21_6tcu8")]
|
||||
transform = Transform3D(-0.6952358, 0, 0.7187818, 0, 1, 0, -0.7187818, 0, -0.6952358, -106.96719, -3.8146973e-06, -49.558266)
|
||||
|
||||
[node name="Node3D41" parent="." unique_id=1161283244 instance=ExtResource("21_6tcu8")]
|
||||
transform = Transform3D(0.5370493, 0, 0.84355086, 0, 1, 0, -0.84355086, 0, 0.5370493, -71.38757, 0.422287, -47.143406)
|
||||
|
||||
[node name="Node3D42" parent="." unique_id=2086508587 instance=ExtResource("21_6tcu8")]
|
||||
transform = Transform3D(0.5370493, 0, 0.84355086, 0, 1, 0, -0.84355086, 0, 0.5370493, -125.60689, 0.422287, -16.621292)
|
||||
|
||||
[node name="Node3D43" parent="." unique_id=1227712291 instance=ExtResource("21_6tcu8")]
|
||||
transform = Transform3D(0.5370493, 0, 0.84355086, 0, 1, 0, -0.84355086, 0, 0.5370493, -119.47875, 0.422287, 57.55169)
|
||||
|
||||
[node name="Node3D44" parent="." unique_id=2117406642 instance=ExtResource("21_6tcu8")]
|
||||
transform = Transform3D(0.5370493, 0, 0.84355086, 0, 1, 0, -0.84355086, 0, 0.5370493, -51.924072, 0.422287, 55.38028)
|
||||
|
||||
[node name="Node3D45" parent="." unique_id=1386733750 instance=ExtResource("21_6tcu8")]
|
||||
transform = Transform3D(-0.35344225, 0, 0.9354564, 0, 1, 0, -0.9354564, 0, -0.35344225, -84.75231, 0.422287, 32.89707)
|
||||
|
||||
[node name="Node3D46" parent="." unique_id=2093080959 instance=ExtResource("21_6tcu8")]
|
||||
transform = Transform3D(-0.8073416, 0, 0.59008443, 0, 1, 0, -0.59008443, 0, -0.8073416, -94.86392, 0.422287, -16.022987)
|
||||
|
||||
[node name="Node3D47" parent="." unique_id=332555614 instance=ExtResource("21_6tcu8")]
|
||||
transform = Transform3D(-0.92229545, 0, 0.38648564, 0, 1, 0, -0.38648564, 0, -0.92229545, -120.543335, 0.422287, 14.401403)
|
||||
|
||||
[node name="Node3D48" parent="." unique_id=1687059106 instance=ExtResource("21_6tcu8")]
|
||||
transform = Transform3D(-0.7581457, 0, 0.6520852, 0, 1, 0, -0.6520852, 0, -0.7581457, -84.35799, 0.422287, 78.99163)
|
||||
|
||||
[node name="Node3D49" parent="." unique_id=2009632842 instance=ExtResource("21_6tcu8")]
|
||||
transform = Transform3D(-0.7581457, 0, 0.6520852, 0, 1, 0, -0.6520852, 0, -0.7581457, -38.159286, 0.422287, 98.463486)
|
||||
|
||||
[node name="Node3D50" parent="." unique_id=293622677 instance=ExtResource("21_6tcu8")]
|
||||
transform = Transform3D(-0.7581457, 0, 0.6520852, 0, 1, 0, -0.6520852, 0, -0.7581457, -35.033936, 0.422287, -72.41817)
|
||||
|
||||
[connection signal="body_entered" from="EnemyGoal/Area3D" to="EnemyGoal" method="_on_area_3d_body_entered"]
|
||||
[connection signal="body_entered" from="Killbox" to="Killbox" method="_on_body_entered"]
|
||||
11
Zones/Moat/zc_moat.tres
Normal file
11
Zones/Moat/zc_moat.tres
Normal file
@@ -0,0 +1,11 @@
|
||||
[gd_resource type="Resource" script_class="ZoneConfig" format=3 uid="uid://cqm54pu03l510"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://y1qa1g3ic8sp" path="res://Zones/Moat/scn_moat.tscn" id="1_i6w1j"]
|
||||
[ext_resource type="Script" uid="uid://q0vwwqs066g8" path="res://zone_config.gd" id="2_5ugqa"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_5ugqa")
|
||||
zone_name = "Moat"
|
||||
scene = ExtResource("1_i6w1j")
|
||||
flow_field_data_path = "res://Zones/Moat/ffd_moat.json"
|
||||
metadata/_custom_type_script = "uid://q0vwwqs066g8"
|
||||
Reference in New Issue
Block a user