-World Environment Mess Arounds
-Player Height Change -Altar Sky Video Import Test -Manually Changed Shading On for a few materials on Altar that weren't switched over
This commit is contained in:
@@ -24,40 +24,40 @@ public partial class DungeonFloor : Node3D, IDungeonFloor
|
||||
|
||||
public void InitializeDungeon()
|
||||
{
|
||||
Rooms = [];
|
||||
Rooms = FindAllDungeonRooms([.. GetChildren()], Rooms);
|
||||
_playerSpawnPoint = RandomizePlayerSpawnPoint();
|
||||
var monsterRooms = Rooms.OfType<MonsterRoom>();
|
||||
foreach (var room in monsterRooms)
|
||||
room.SpawnEnemies(EnemyDatabase);
|
||||
DungeonGenerator.EmitSignal("done_generating");
|
||||
Rooms = [];
|
||||
Rooms = FindAllDungeonRooms([.. GetChildren()], Rooms);
|
||||
_playerSpawnPoint = RandomizePlayerSpawnPoint();
|
||||
var monsterRooms = Rooms.OfType<MonsterRoom>();
|
||||
foreach (var room in monsterRooms)
|
||||
room.SpawnEnemies(EnemyDatabase);
|
||||
DungeonGenerator.EmitSignal("done_generating");
|
||||
}
|
||||
|
||||
public Transform3D GetPlayerSpawnPoint() => new Transform3D(_playerSpawnPoint.Basis, new Vector3(_playerSpawnPoint.Origin.X, -1.75f, _playerSpawnPoint.Origin.Z));
|
||||
|
||||
private Transform3D RandomizePlayerSpawnPoint()
|
||||
{
|
||||
var randomSpawnLocations = Rooms
|
||||
.OfType<MonsterRoom>()
|
||||
.Select(x => x.PlayerSpawn);
|
||||
var godotCollection = new Godot.Collections.Array<Marker3D>(randomSpawnLocations);
|
||||
var result = godotCollection.PickRandom();
|
||||
return result.GlobalTransform;
|
||||
var randomSpawnLocations = Rooms
|
||||
.OfType<MonsterRoom>()
|
||||
.Select(x => x.PlayerSpawn);
|
||||
var godotCollection = new Godot.Collections.Array<Marker3D>(randomSpawnLocations);
|
||||
var result = godotCollection.PickRandom();
|
||||
return result.GlobalTransform;
|
||||
}
|
||||
|
||||
private static ImmutableList<IDungeonRoom> FindAllDungeonRooms(List<Node> nodesToSearch, ImmutableList<IDungeonRoom> roomsFound)
|
||||
{
|
||||
if (nodesToSearch.Count == 0)
|
||||
return roomsFound;
|
||||
if (nodesToSearch.Count == 0)
|
||||
return roomsFound;
|
||||
|
||||
foreach (var node in nodesToSearch)
|
||||
{
|
||||
if (node is IDungeonRoom dungeonRoom)
|
||||
roomsFound = roomsFound.Add(dungeonRoom);
|
||||
if (node.HasSignal("dungeon_done_generating"))
|
||||
node.EmitSignal("dungeon_done_generating");
|
||||
}
|
||||
foreach (var node in nodesToSearch)
|
||||
{
|
||||
if (node is IDungeonRoom dungeonRoom)
|
||||
roomsFound = roomsFound.Add(dungeonRoom);
|
||||
if (node.HasSignal("dungeon_done_generating"))
|
||||
node.EmitSignal("dungeon_done_generating");
|
||||
}
|
||||
|
||||
return FindAllDungeonRooms(nodesToSearch.SelectMany(x => x.GetChildren()).ToList(), roomsFound);
|
||||
return FindAllDungeonRooms(nodesToSearch.SelectMany(x => x.GetChildren()).ToList(), roomsFound);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,15 +23,15 @@ public partial class Floor0 : Node3D, IDungeonFloor
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
Show();
|
||||
Exit.AreaEntered += Exit_AreaEntered;
|
||||
FloorIsLoaded = true;
|
||||
Show();
|
||||
Exit.AreaEntered += Exit_AreaEntered;
|
||||
FloorIsLoaded = true;
|
||||
}
|
||||
|
||||
private void Exit_AreaEntered(Area3D area)
|
||||
{
|
||||
if (area.GetOwner() is IPlayer)
|
||||
ExitReached();
|
||||
if (area.GetOwner() is IPlayer)
|
||||
ExitReached();
|
||||
}
|
||||
|
||||
public void ExitReached() => Game.FloorExitReached();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Chickensoft.AutoInject;
|
||||
using Chickensoft.AutoInject;
|
||||
using Chickensoft.Introspection;
|
||||
using Godot;
|
||||
using System.Collections.Immutable;
|
||||
@@ -22,21 +22,21 @@ public partial class Overworld : Node3D, IDungeonFloor
|
||||
|
||||
public void InitializeDungeon()
|
||||
{
|
||||
Show();
|
||||
Exit.AreaEntered += Exit_AreaEntered;
|
||||
FloorIsLoaded = true;
|
||||
Show();
|
||||
Exit.AreaEntered += Exit_AreaEntered;
|
||||
FloorIsLoaded = true;
|
||||
}
|
||||
|
||||
private void Exit_AreaEntered(Area3D area)
|
||||
{
|
||||
if (area.GetOwner() is IPlayer)
|
||||
ExitReached();
|
||||
if (area.GetOwner() is IPlayer)
|
||||
ExitReached();
|
||||
}
|
||||
|
||||
public void ExitReached() => Game.FloorExitReached();
|
||||
|
||||
public Transform3D GetPlayerSpawnPoint()
|
||||
{
|
||||
return PlayerSpawnPoint.GlobalTransform;
|
||||
return PlayerSpawnPoint.GlobalTransform;
|
||||
}
|
||||
}
|
||||
|
||||
25
Zennysoft.Game.Ma/src/map/dungeon/floors/AltarSky.tres
Normal file
25
Zennysoft.Game.Ma/src/map/dungeon/floors/AltarSky.tres
Normal file
@@ -0,0 +1,25 @@
|
||||
[gd_resource type="VisualShader" load_steps=3 format=3 uid="uid://bl4n1pe2c1l07"]
|
||||
|
||||
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_2ykon"]
|
||||
input_name = "time"
|
||||
|
||||
[sub_resource type="VisualShaderNodeTexture3D" id="VisualShaderNodeTexture3D_iqpgl"]
|
||||
|
||||
[resource]
|
||||
code = "shader_type sky;
|
||||
|
||||
|
||||
|
||||
void sky() {
|
||||
}
|
||||
"
|
||||
graph_offset = Vector2(-173.47, -138.662)
|
||||
mode = 3
|
||||
flags/use_half_res_pass = false
|
||||
flags/use_quarter_res_pass = false
|
||||
flags/disable_fog = false
|
||||
flags/use_debanding = false
|
||||
nodes/sky/2/node = SubResource("VisualShaderNodeInput_2ykon")
|
||||
nodes/sky/2/position = Vector2(320, 40)
|
||||
nodes/sky/3/node = SubResource("VisualShaderNodeTexture3D_iqpgl")
|
||||
nodes/sky/3/position = Vector2(20, 40)
|
||||
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=20 format=3 uid="uid://dmiqwmivkjgmq"]
|
||||
[gd_scene load_steps=21 format=3 uid="uid://dmiqwmivkjgmq"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="1_afeds"]
|
||||
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/rooms/Set A/03. Antechamber A.tscn" id="3_7txs6"]
|
||||
@@ -27,6 +27,44 @@ geometry_collision_mask = 2147483648
|
||||
agent_height = 2.0
|
||||
region_min_size = 8.0
|
||||
|
||||
[sub_resource type="Environment" id="Environment_sn0iw"]
|
||||
background_mode = 1
|
||||
background_energy_multiplier = 0.73
|
||||
background_camera_feed_id = 3
|
||||
ambient_light_source = 2
|
||||
ambient_light_color = Color(1, 1, 1, 1)
|
||||
ambient_light_energy = 0.16
|
||||
reflected_light_source = 1
|
||||
ssr_fade_in = 6.11789
|
||||
ssr_fade_out = 2.92817
|
||||
ssr_depth_tolerance = 6.61
|
||||
ssao_radius = 0.01
|
||||
ssao_intensity = 0.02
|
||||
ssil_radius = 6.3
|
||||
sdfgi_use_occlusion = true
|
||||
sdfgi_bounce_feedback = 0.77
|
||||
sdfgi_min_cell_size = 0.01
|
||||
sdfgi_cascade0_distance = 0.64
|
||||
sdfgi_max_distance = 10.24
|
||||
glow_enabled = true
|
||||
glow_intensity = 0.84
|
||||
glow_strength = 0.63
|
||||
glow_bloom = 1.0
|
||||
glow_blend_mode = 1
|
||||
glow_hdr_threshold = 1.1
|
||||
glow_hdr_scale = 1.92
|
||||
glow_map_strength = 1.0
|
||||
fog_light_color = Color(0, 0, 0, 1)
|
||||
fog_light_energy = 1.41
|
||||
fog_sun_scatter = 0.08
|
||||
fog_density = 0.082
|
||||
fog_height = 1.0
|
||||
fog_height_density = 1.0
|
||||
volumetric_fog_enabled = true
|
||||
volumetric_fog_density = 0.2786
|
||||
volumetric_fog_albedo = Color(0, 0, 0, 1)
|
||||
volumetric_fog_emission_energy = 0.0
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_23nxb"]
|
||||
size = Vector3(135, 1, 125)
|
||||
|
||||
@@ -258,13 +296,19 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 38, 0, 14)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 42, 0, 14)
|
||||
|
||||
[node name="RoomsContainer" type="Node3D" parent="NavigationRegion3D/DungeonGenerator"]
|
||||
visible = false
|
||||
|
||||
[node name="Altar Environment" type="WorldEnvironment" parent="NavigationRegion3D/DungeonGenerator"]
|
||||
environment = SubResource("Environment_sn0iw")
|
||||
|
||||
[node name="StaticBody3D" type="StaticBody3D" parent="NavigationRegion3D"]
|
||||
visible = false
|
||||
collision_layer = 2147483648
|
||||
collision_mask = 2147483648
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/StaticBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, -1.5, -4.5)
|
||||
visible = false
|
||||
shape = SubResource("BoxShape3D_23nxb")
|
||||
|
||||
[node name="EnemyDatabase" parent="." instance=ExtResource("11_yvj8v")]
|
||||
|
||||
Reference in New Issue
Block a user