Add Special Rooms class

This commit is contained in:
2025-09-15 21:20:46 -07:00
parent 4808b1dd63
commit 7cbb93822b
6 changed files with 45 additions and 33 deletions

View File

@@ -0,0 +1,25 @@
using Chickensoft.AutoInject;
using Chickensoft.Introspection;
using Godot;
using System.Collections.Immutable;
namespace Zennysoft.Game.Ma;
[Meta(typeof(IAutoNode))]
public partial class SpecialFloor : Node3D, IDungeonFloor
{
public override void _Notification(int what) => this.Notify(what);
[Node] private Marker3D PlayerSpawn { get; set; } = default!;
public ImmutableList<IDungeonRoom> Rooms => [];
public void InitializeDungeon()
{
FloorIsLoaded = true;
}
public bool FloorIsLoaded { get; set; }
public Transform3D GetPlayerSpawnPoint() => PlayerSpawn.GlobalTransform;
}

View File

@@ -0,0 +1 @@
uid://xd6tx3lifebl

View File

@@ -1,11 +1,11 @@
[gd_scene load_steps=18 format=3 uid="uid://dttk7gis5ibge"] [gd_scene load_steps=18 format=3 uid="uid://dttk7gis5ibge"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_7ld5y"] [ext_resource type="Script" uid="uid://xd6tx3lifebl" path="res://src/map/dungeon/code/SpecialFloor.cs" id="1_gtn7m"]
[ext_resource type="PackedScene" uid="uid://dcyriq5bejtdj" path="res://src/map/dungeon/models/Set B/30. Void Room/30_A2_VOID_ROOM_VER.2.glb" id="2_pauwa"] [ext_resource type="PackedScene" uid="uid://dcyriq5bejtdj" path="res://src/map/dungeon/models/Set B/30. Void Room/30_A2_VOID_ROOM_VER.2.glb" id="2_pauwa"]
[ext_resource type="Shader" uid="uid://ucyntjbf812l" path="res://src/map/map shaders/VOIDSHADE.gdshader" id="3_gtn7m"] [ext_resource type="Shader" path="res://src/map/map shaders/VOIDSHADE.gdshader" id="3_gtn7m"]
[ext_resource type="FastNoiseLite" uid="uid://c7mj06ydprexd" path="res://src/map/map shaders/noise void.tres" id="4_gtn7m"] [ext_resource type="FastNoiseLite" uid="uid://c7mj06ydprexd" path="res://src/map/map shaders/noise void.tres" id="4_gtn7m"]
[ext_resource type="Shader" uid="uid://dra2fnoyyinii" path="res://src/map/map shaders/VOID GLASS.gdshader" id="4_rvyv7"] [ext_resource type="Shader" path="res://src/map/map shaders/VOID GLASS.gdshader" id="4_rvyv7"]
[ext_resource type="Shader" uid="uid://bpkmgenx50vof" path="res://src/map/map shaders/VOID PORTAL.gdshader" id="5_euvyt"] [ext_resource type="Shader" path="res://src/map/map shaders/VOID PORTAL.gdshader" id="5_euvyt"]
[sub_resource type="Gradient" id="Gradient_hths4"] [sub_resource type="Gradient" id="Gradient_hths4"]
offsets = PackedFloat32Array(0, 0.698113, 1) offsets = PackedFloat32Array(0, 0.698113, 1)
@@ -67,7 +67,7 @@ subdivide_width = 2
subdivide_depth = 2 subdivide_depth = 2
[node name="Void Room" type="Node3D"] [node name="Void Room" type="Node3D"]
script = ExtResource("1_7ld5y") script = ExtResource("1_gtn7m")
[node name="Model" type="Node3D" parent="."] [node name="Model" type="Node3D" parent="."]
@@ -91,6 +91,10 @@ skeleton = NodePath("../../..")
[node name="Spawn Points" type="Node3D" parent="."] [node name="Spawn Points" type="Node3D" parent="."]
[node name="PlayerSpawn" type="Marker3D" parent="Spawn Points"]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 7.70625, -1.18482, -27.841)
[node name="Room" type="Node3D" parent="."] [node name="Room" type="Node3D" parent="."]
[node name="Minimap" type="Node3D" parent="."] [node name="Minimap" type="Node3D" parent="."]

View File

@@ -1,6 +1,6 @@
[gd_scene load_steps=102 format=4 uid="uid://bo20ffw2ygbks"] [gd_scene load_steps=102 format=4 uid="uid://bo20ffw2ygbks"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_7wym6"] [ext_resource type="Script" uid="uid://xd6tx3lifebl" path="res://src/map/dungeon/code/SpecialFloor.cs" id="1_j4ho3"]
[ext_resource type="Texture2D" uid="uid://ddrvsy7psmwig" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_DARKER_STONE_AREA_2.png" id="2_jbyuo"] [ext_resource type="Texture2D" uid="uid://ddrvsy7psmwig" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_DARKER_STONE_AREA_2.png" id="2_jbyuo"]
[ext_resource type="Texture2D" uid="uid://dk2cj5rcnkxnf" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_CEILING_AREA2.jpg" id="3_nadnf"] [ext_resource type="Texture2D" uid="uid://dk2cj5rcnkxnf" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_CEILING_AREA2.jpg" id="3_nadnf"]
[ext_resource type="Texture2D" uid="uid://bfr26em2xh1r1" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_STONE_PANEL_AREA2png.png" id="4_bb3ot"] [ext_resource type="Texture2D" uid="uid://bfr26em2xh1r1" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_STONE_PANEL_AREA2png.png" id="4_bb3ot"]
@@ -774,7 +774,7 @@ shader_parameter/steps = 512
shader_parameter/ssr_screen_fade = 0.05 shader_parameter/ssr_screen_fade = 0.05
[node name="Goddess of Guidance\'s Floor" type="Node3D"] [node name="Goddess of Guidance\'s Floor" type="Node3D"]
script = ExtResource("1_7wym6") script = ExtResource("1_j4ho3")
[node name="Model" type="Node3D" parent="."] [node name="Model" type="Node3D" parent="."]

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=56 format=4 uid="uid://cyrrhoarhxlhg"] [gd_scene load_steps=56 format=4 uid="uid://cyrrhoarhxlhg"]
[ext_resource type="Texture2D" uid="uid://btt02vinv3ikx" path="res://src/map/dungeon/models/Set B/36. Final Floor/36_A2_FINAL_FLOOR_VER.0_Plane Base Color.png" id="1_er87g"] [ext_resource type="Texture2D" uid="uid://btt02vinv3ikx" path="res://src/map/dungeon/models/Set B/36. Final Floor/36_A2_FINAL_FLOOR_VER.0_Plane Base Color.png" id="1_er87g"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_y4p12"] [ext_resource type="Script" uid="uid://xd6tx3lifebl" path="res://src/map/dungeon/code/SpecialFloor.cs" id="1_y4p12"]
[ext_resource type="Texture2D" uid="uid://bg3dxa6v6n165" path="res://src/map/dungeon/models/Set B/36. Final Floor/36_A2_FINAL_FLOOR_VER.0_DARKER_STONE_AREA_2.png" id="2_6tqdj"] [ext_resource type="Texture2D" uid="uid://bg3dxa6v6n165" path="res://src/map/dungeon/models/Set B/36. Final Floor/36_A2_FINAL_FLOOR_VER.0_DARKER_STONE_AREA_2.png" id="2_6tqdj"]
[ext_resource type="Texture2D" uid="uid://ej5sfwsfjog4" path="res://src/map/dungeon/models/Set B/36. Final Floor/36_A2_FINAL_FLOOR_VER.0_WHITE_TILE2.png" id="3_fmpqk"] [ext_resource type="Texture2D" uid="uid://ej5sfwsfjog4" path="res://src/map/dungeon/models/Set B/36. Final Floor/36_A2_FINAL_FLOOR_VER.0_WHITE_TILE2.png" id="3_fmpqk"]
[ext_resource type="Texture2D" uid="uid://c7lt8mcdhr7sr" path="res://src/map/dungeon/models/Set B/36. Final Floor/36_A2_FINAL_FLOOR_VER.0_final_sand.jpg" id="4_k7sl3"] [ext_resource type="Texture2D" uid="uid://c7lt8mcdhr7sr" path="res://src/map/dungeon/models/Set B/36. Final Floor/36_A2_FINAL_FLOOR_VER.0_final_sand.jpg" id="4_k7sl3"]
@@ -21,25 +21,21 @@
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_7o1e6"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_7o1e6"]
resource_name = "EYE" resource_name = "EYE"
transparency = 4 transparency = 4
shading_mode = 1
albedo_color = Color(0.906695, 0, 0.0496455, 1) albedo_color = Color(0.906695, 0, 0.0496455, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k34ib"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k34ib"]
resource_name = "MOTHER PAINT" resource_name = "MOTHER PAINT"
transparency = 4 transparency = 4
shading_mode = 1
albedo_texture = ExtResource("1_er87g") albedo_texture = ExtResource("1_er87g")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lrrse"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lrrse"]
resource_name = "HORN" resource_name = "HORN"
transparency = 4 transparency = 4
shading_mode = 1
albedo_texture = ExtResource("2_6tqdj") albedo_texture = ExtResource("2_6tqdj")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_84s5d"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_84s5d"]
resource_name = "HEADWEAR" resource_name = "HEADWEAR"
transparency = 4 transparency = 4
shading_mode = 1
albedo_texture = ExtResource("3_fmpqk") albedo_texture = ExtResource("3_fmpqk")
[sub_resource type="ArrayMesh" id="ArrayMesh_ag2gb"] [sub_resource type="ArrayMesh" id="ArrayMesh_ag2gb"]
@@ -151,7 +147,6 @@ shadow_mesh = SubResource("ArrayMesh_ag2gb")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_67ke0"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_67ke0"]
resource_name = "SAND" resource_name = "SAND"
transparency = 4 transparency = 4
shading_mode = 1
albedo_texture = ExtResource("4_k7sl3") albedo_texture = ExtResource("4_k7sl3")
[sub_resource type="ArrayMesh" id="ArrayMesh_vv0lm"] [sub_resource type="ArrayMesh" id="ArrayMesh_vv0lm"]
@@ -1929,6 +1924,10 @@ skeleton = NodePath("")
[node name="Spawn Points" type="Node3D" parent="."] [node name="Spawn Points" type="Node3D" parent="."]
[node name="PlayerSpawn" type="Marker3D" parent="Spawn Points"]
unique_name_in_owner = true
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -173.476, 90.0869, -1.18212)
[node name="Room" type="Node3D" parent="."] [node name="Room" type="Node3D" parent="."]
[node name="Minimap" type="Node3D" parent="."] [node name="Minimap" type="Node3D" parent="."]

View File

@@ -1,6 +1,6 @@
[gd_scene load_steps=92 format=4 uid="uid://jha0mhct0e7i"] [gd_scene load_steps=87 format=4 uid="uid://jha0mhct0e7i"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_qlntn"] [ext_resource type="Script" uid="uid://xd6tx3lifebl" path="res://src/map/dungeon/code/SpecialFloor.cs" id="1_c8nq0"]
[ext_resource type="Texture2D" uid="uid://ddrvsy7psmwig" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_DARKER_STONE_AREA_2.png" id="2_nk06r"] [ext_resource type="Texture2D" uid="uid://ddrvsy7psmwig" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_DARKER_STONE_AREA_2.png" id="2_nk06r"]
[ext_resource type="Texture2D" uid="uid://dk2cj5rcnkxnf" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_CEILING_AREA2.jpg" id="3_aspfl"] [ext_resource type="Texture2D" uid="uid://dk2cj5rcnkxnf" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_CEILING_AREA2.jpg" id="3_aspfl"]
[ext_resource type="Texture2D" uid="uid://bfr26em2xh1r1" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_STONE_PANEL_AREA2png.png" id="4_gu2dn"] [ext_resource type="Texture2D" uid="uid://bfr26em2xh1r1" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_STONE_PANEL_AREA2png.png" id="4_gu2dn"]
@@ -13,14 +13,9 @@
[ext_resource type="Texture2D" uid="uid://cacij2icygje2" path="res://src/map/dungeon/models/Set B/40/Floor - ALT Goddess of Guidance mirrored_DARKER_STONE_AREA_2.png" id="13_qlntn"] [ext_resource type="Texture2D" uid="uid://cacij2icygje2" path="res://src/map/dungeon/models/Set B/40/Floor - ALT Goddess of Guidance mirrored_DARKER_STONE_AREA_2.png" id="13_qlntn"]
[ext_resource type="Texture2D" uid="uid://dd1jvmfs1cbbg" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_floral_single_tile.jpg" id="13_qvgr0"] [ext_resource type="Texture2D" uid="uid://dd1jvmfs1cbbg" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_floral_single_tile.jpg" id="13_qvgr0"]
[ext_resource type="Texture2D" uid="uid://nvg6i8gbgqjv" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_angkor_mural.jpg" id="14_357qs"] [ext_resource type="Texture2D" uid="uid://nvg6i8gbgqjv" path="res://src/map/dungeon/models/Set B/35. Goddess of Guidance's Floor/GoG Room mirrored_angkor_mural.jpg" id="14_357qs"]
[ext_resource type="PackedScene" uid="uid://twrj4wixcbu7" path="res://src/items/ItemDatabase.tscn" id="14_c8nq0"]
[ext_resource type="Shader" path="res://src/map/map shaders/gog spectral.gdshader" id="14_nk06r"] [ext_resource type="Shader" path="res://src/map/map shaders/gog spectral.gdshader" id="14_nk06r"]
[ext_resource type="Shader" path="res://src/map/map shaders/spectreweapons.gdshader" id="15_aspfl"] [ext_resource type="Shader" path="res://src/map/map shaders/spectreweapons.gdshader" id="15_aspfl"]
[ext_resource type="Shader" path="res://src/map/map shaders/GOGROOM Water.gdshader" id="16_qgq3i"] [ext_resource type="Shader" path="res://src/map/map shaders/GOGROOM Water.gdshader" id="16_qgq3i"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="17_vqdg0"]
[ext_resource type="PackedScene" uid="uid://bs56ccgosmu47" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.tscn" id="18_c8nq0"]
[ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/02. michael/Michael.tscn" id="19_5bm60"]
[ext_resource type="PackedScene" uid="uid://cvk007twac22c" path="res://src/enemy/enemy_types/03. filth_eater/FilthEater.tscn" id="20_q7u05"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_q1ixl"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_q1ixl"]
resource_name = "Material.014" resource_name = "Material.014"
@@ -880,7 +875,7 @@ shader_parameter/steps = 512
shader_parameter/ssr_screen_fade = 0.05 shader_parameter/ssr_screen_fade = 0.05
[node name="Goddess of Guidance\'s Floor" type="Node3D"] [node name="Goddess of Guidance\'s Floor" type="Node3D"]
script = ExtResource("1_qlntn") script = ExtResource("1_c8nq0")
[node name="Model" type="Node3D" parent="."] [node name="Model" type="Node3D" parent="."]
@@ -971,13 +966,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -66.2332)
unique_name_in_owner = true unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.87173, -1.37707, 2.25211) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.87173, -1.37707, 2.25211)
[node name="ItemDatabase" parent="Spawn Points" instance=ExtResource("14_c8nq0")]
unique_name_in_owner = true
[node name="ItemSpawnPoint" type="Marker3D" parent="Spawn Points"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -108.001, -2.05432, 2.0026)
[node name="Room" type="Node3D" parent="."] [node name="Room" type="Node3D" parent="."]
[node name="Minimap" type="Node3D" parent="."] [node name="Minimap" type="Node3D" parent="."]
@@ -1045,8 +1033,3 @@ transform = Transform3D(230, 0, 0, 0, 230, 0, 0, 0, 230, 0, -2.98516, 0)
mesh = SubResource("PlaneMesh_slalf") mesh = SubResource("PlaneMesh_slalf")
skeleton = NodePath("../Model/GoG Room mirrored") skeleton = NodePath("../Model/GoG Room mirrored")
surface_material_override/0 = SubResource("ShaderMaterial_savej") surface_material_override/0 = SubResource("ShaderMaterial_savej")
[node name="EnemyDatabase" parent="." instance=ExtResource("17_vqdg0")]
unique_name_in_owner = true
EnemyList = Array[PackedScene]([ExtResource("18_c8nq0"), ExtResource("19_5bm60"), ExtResource("20_q7u05")])
SpawnRate = PackedFloat32Array(0.5, 1, 1)