Enable/Disable environment when entering/exiting breakable wall room
This commit is contained in:
@@ -9,10 +9,18 @@ public partial class ExplodableWall : Node3D
|
||||
|
||||
[Node] public StaticBody3D Collision { get; set; }
|
||||
|
||||
public bool IsExploded { get; private set; } = false;
|
||||
|
||||
[Signal]
|
||||
public delegate void WallExplodedEventHandler();
|
||||
|
||||
public override void _Notification(int what) => this.Notify(what);
|
||||
|
||||
public void Demolish()
|
||||
{
|
||||
AnimationPlayer.Play("Animation");
|
||||
Collision.QueueFree();
|
||||
IsExploded = true;
|
||||
EmitSignal(SignalName.WallExploded);
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,46 @@
|
||||
using Chickensoft.AutoInject;
|
||||
using Chickensoft.Introspection;
|
||||
using Godot;
|
||||
|
||||
[Meta(typeof(IAutoNode))]
|
||||
public partial class BreakableWallRoom : Node3D
|
||||
{
|
||||
public override void _Notification(int what) => this.Notify(what);
|
||||
|
||||
[Node] public WorldEnvironment WorldEnvironment { get; set; }
|
||||
|
||||
[Node] public Area3D OutsideArea { get; set; }
|
||||
|
||||
[Node] public ExplodableWall ExplodableWall { get; set; }
|
||||
|
||||
|
||||
public void OnReady()
|
||||
{
|
||||
OutsideArea.AreaEntered += OutsideArea_AreaEntered;
|
||||
OutsideArea.AreaExited += OutsideArea_AreaExited;
|
||||
ExplodableWall.WallExploded += ExplodableWall_WallExploded;
|
||||
}
|
||||
|
||||
private void ExplodableWall_WallExploded()
|
||||
{
|
||||
OutsideArea.SetDeferred(Area3D.PropertyName.Monitorable, true);
|
||||
OutsideArea.SetDeferred(Area3D.PropertyName.Monitoring, true);
|
||||
}
|
||||
|
||||
private void OutsideArea_AreaEntered(Area3D area)
|
||||
{
|
||||
if (!ExplodableWall.IsExploded)
|
||||
return;
|
||||
WorldEnvironment.Environment = GD.Load<Environment>($"res://src/map/dungeon/rooms/Special Rooms/OutsideEnvironment.tres");
|
||||
WorldEnvironment.CameraAttributes = GD.Load<CameraAttributesPractical>($"res://src/map/dungeon/rooms/Special Rooms/OutsideEnvironmentCameraAtt.tres");
|
||||
}
|
||||
|
||||
private void OutsideArea_AreaExited(Area3D area)
|
||||
{
|
||||
if (!ExplodableWall.IsExploded)
|
||||
return;
|
||||
|
||||
WorldEnvironment.Environment = null;
|
||||
WorldEnvironment.CameraAttributes = null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
uid://c3ptkim7p6muc
|
||||
@@ -0,0 +1,62 @@
|
||||
[gd_resource type="Environment" load_steps=4 format=3 uid="uid://kmhqi2bt3dcj"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://c4a68uhm5o2h4" path="res://src/map/map shaders/Altar Sky Environment.gdshader" id="1_uhr3g"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_hlln8"]
|
||||
shader = ExtResource("1_uhr3g")
|
||||
shader_parameter/day_top_color = Color(0.110511, 0.211694, 0.207729, 1)
|
||||
shader_parameter/day_bottom_color = Color(0.330221, 0.542076, 0.605553, 1)
|
||||
shader_parameter/sunset_top_color = Color(0.375928, 0.529835, 0.733631, 1)
|
||||
shader_parameter/sunset_bottom_color = Color(0, 0.263846, 0.458067, 1)
|
||||
shader_parameter/night_top_color = Color(0.02, 0, 0.04, 1)
|
||||
shader_parameter/night_bottom_color = Color(0.1, 0, 0.2, 1)
|
||||
shader_parameter/horizon_color = Color(0, 0.7, 0.8, 1)
|
||||
shader_parameter/horizon_blur = 0.25
|
||||
shader_parameter/sun_color = Color(0.900585, 0.632559, 0.334535, 1)
|
||||
shader_parameter/sun_sunset_color = Color(0.806005, 0, 0.0992685, 1)
|
||||
shader_parameter/sun_size = 0.062
|
||||
shader_parameter/sun_blur = 0.214
|
||||
shader_parameter/moon_color = Color(1, 0.95, 0.7, 1)
|
||||
shader_parameter/moon_size = 0.06
|
||||
shader_parameter/moon_blur = 0.1
|
||||
shader_parameter/clouds_edge_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/clouds_top_color = Color(1, 1, 1, 1)
|
||||
shader_parameter/clouds_middle_color = Color(0.92, 0.92, 0.98, 1)
|
||||
shader_parameter/clouds_bottom_color = Color(0.99, 0.99, 0.99, 1)
|
||||
shader_parameter/clouds_speed = 20.0
|
||||
shader_parameter/clouds_direction = -0.276923
|
||||
shader_parameter/clouds_scale = 4.0
|
||||
shader_parameter/clouds_cutoff = 0.32
|
||||
shader_parameter/clouds_fuzziness = 0.35
|
||||
shader_parameter/clouds_weight = 0.0
|
||||
shader_parameter/clouds_blur = 0.12
|
||||
shader_parameter/stars_speed = 1.0
|
||||
shader_parameter/overwritten_time = 0.0
|
||||
|
||||
[sub_resource type="Sky" id="Sky_gbv4o"]
|
||||
resource_local_to_scene = true
|
||||
sky_material = SubResource("ShaderMaterial_hlln8")
|
||||
|
||||
[resource]
|
||||
resource_local_to_scene = true
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_gbv4o")
|
||||
ambient_light_source = 1
|
||||
reflected_light_source = 1
|
||||
sdfgi_use_occlusion = true
|
||||
sdfgi_read_sky_light = false
|
||||
sdfgi_min_cell_size = 0.01
|
||||
sdfgi_cascade0_distance = 0.64
|
||||
sdfgi_max_distance = 10.24
|
||||
glow_enabled = true
|
||||
glow_intensity = 0.46
|
||||
glow_strength = 0.7
|
||||
glow_bloom = 0.2
|
||||
glow_blend_mode = 0
|
||||
fog_density = 0.0565
|
||||
fog_height = -47.63
|
||||
fog_height_density = 0.2481
|
||||
volumetric_fog_enabled = true
|
||||
volumetric_fog_density = 0.01
|
||||
volumetric_fog_albedo = Color(0.439054, 0.435171, 0.424614, 1)
|
||||
volumetric_fog_emission_energy = 0.0
|
||||
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="CameraAttributesPractical" format=3 uid="uid://dmxxjkk3faxy6"]
|
||||
|
||||
[resource]
|
||||
auto_exposure_enabled = true
|
||||
dof_blur_far_enabled = true
|
||||
dof_blur_far_distance = 29.84
|
||||
dof_blur_amount = 0.06
|
||||
Reference in New Issue
Block a user